我正在尝试使用matplotlib绘制一个非常简单的条形图,基础数据在以datetime时间戳作为索引的pd.dataframe中进行显示
但是尝试
ax = plt.subplot(111)
ax.bar(data.index, data[subset])
我得到了错误: TypeError :只能将size-1数组转换为Python标量
一种可行的解决方法是
ax.bar(data.index, [i[0] for i in data[subset].values.tolist()])
但是我很困惑为什么我不能使用pd.dataframe作为条形图的输入值。如果我使用完全相同的代码plot
而不是bar
,则一切正常。
我真的想在这里使用plt.bar,因为我正在构建更大的图,但这只是其中的一部分,因此df.bar并没有帮助。
答案 0 :(得分:0)
您真的很亲密:
df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})
ax = df.plot.bar(x='lab', y='val', rot=0)
您需要调用df并在其上调用plot函数。