Вот как я справляюсь с проблемой:
bar_width = 0.2
x = np.arange(12)
y1 = df1.loc[:,'A'].values[:]
y2 = df1.loc[:,'B'].values[:]
y3 = df1.loc[:,'C'].values[:]
plt.bar(x, y1, bar_width,color=colf[0], label=labf[0])
plt.bar(x+bar_width, y2, bar_width,color=colf[1], label=labf[1])
plt.bar(x+2*bar_width, y3, bar_width,color=colf[2], label=labf[2])
после этого,
x_ticklabels = [r'\textbf{Jan}', r'\textbf{Feb}', r'\textbf{Mar}',r'\textbf{Apr}',
r'\textbf{May}', r'\textbf{Jun}', r'\textbf{Jul}',r'\textbf{Ago}',
r'\textbf{Sep}', r'\textbf{Oct}', r'\textbf{Nov}',r'\textbf{Dec}']
plt.xticks(x, x_ticklabels, rotation=30)
Несмотря на то, что это не очень общий характер, по крайней мере, на мой взгляд, результат довольно хороший.