Мне нравится другой элегантный ответ. Однако, поскольку вы пометили matplotlib
, вам может быть интересно узнать соответствующее решение. Идея здесь состоит в том, чтобы выровнять столбцы по краям основных тиков, а затем использовать отрицательную и положительную ширину, чтобы сместить их влево / вправо.
P.S .: Это специально разработанное решение для построения двух столбцов рядом. В принципе, это можно сделать общим для построения нескольких баров.
import matplotlib.pyplot as plt
plt.bar(df1['type'], df1['count'], align='edge', width=-0.3, label='count1')
plt.bar(df2['type'], df2['count'], align='edge', width=0.3, label='count2')
plt.legend()
