单个图上的多个条形图(Python)

时间:2015-09-22 11:18:02

标签: python matplotlib

我无法正确排列数据。我有每个x值的3个图,但目前他们都在密谋自己。我似乎找不到让它们在轴上移动的方法,以便它们彼此相邻。

enter image description here

这就是它的出现方式,而我希望它能像这样出现:

enter image description here

不要担心我刚刚添加的颜色。我看过其他人的例子,但似乎没有帮助。

他是我用来生成此图表的代码:

In[15]: for i in df_Entry.columns.levels[0]:
    plt.figure()
    barwidth = 0.2
    df_Entry[i]['mean'].plot(kind='bar', yerr=df_Entry[i]['std'])
    df_Apex[i]['mean'].plot(kind='bar', yerr=df_Apex[i]['std'])
    df_Exit[i]['mean'].plot(kind='bar', yerr=df_Exit[i]['std'])

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

试试这个:

import numpy as np
b1 = np.array([1,2,3])
b2 = np.array([3,2,1])
x = np.array([1.0, 2.0, 3.0])
plt.bar(left=x-0.3, width=0.3, height=b1)
plt.bar(left=x, width=0.3, height=b2, color='g')

plt.bar()命令可让您指定条形左侧的位置,因此您可以将其移动给定的数量。这里的一个缺点是x轴是浮点轴,你可能不想要它。

虽然它不是来自我,但也有解决方案: http://people.duke.edu/~ccc14/pcfb/numpympl/MatplotlibBarPlots.html

这使用pyplot的面向对象的界面(这让一些人感到困惑,但实际上非常酷),在事后更改标签和轴限制。