如何使用非数字X轴创建条形图?

时间:2017-08-29 14:53:51

标签: python python-2.7 pandas matplotlib

这是我的DataFrame df

    bin             qty
0   (0.0, 25.0]     3634.805042
1   (25.0, 50.0]    1389.567460
2   (50.0, 75.0]    1177.400000
3   (75.0, 100.0]   898.750000
4   (100.0, 125.0]  763.000000

我想创建一个像柱状图一样的条形图。 Y轴应为qty,X轴应为bin,例如“(0.0,25.0)”,垂直旋转。

我试过这个,但它失败了,因为bin不是数字:

plt.bar(df.bin, df.qty, align='center', alpha=0.5)
plt.show()

2 个答案:

答案 0 :(得分:2)

让我们尝试一下,使用Pandas Plot:

df.plot.bar('bin','qty', alpha=.5)

输出:

enter image description here

使用matplotlib:

x = pd.np.arange(len(df['bin']))
fig,ax = plt.subplots(figsize=(14,8))
ax.bar(x,df['qty'])
width = .35
ax.set_xticks(x + width // 2)
ax.set_xticklabels(df['bin'])
plt.show()

输出:

enter image description here

答案 1 :(得分:0)

如果您尝试使用matplotlib,则您的bin列不是有效对象。 the Git book需要一系列标量,等同于每个bin的左值。所以你的数据框应该是

        bin             qty
    0   0.0     3634.805042
    1   25.0    1389.567460
    2   50.0    1177.400000
    3   75.0     898.750000
    4   100.0    763.000000