Python:绘制柱状图时,多个柱子黏在一起

发布时间 2023-03-27 17:42:13作者: ShineLe

问题

在用df.plot.bar()绘制柱状图时,预想中分开的多列却绘制到了一列中,导致绘制结果出错

预期

 

错误绘制

原始数据

 

我的数据是由date和energy两列构成的,需要绘制时间数值柱状图。

原始代码

df.plot.bar(x=0,y=1)

从原始代码中可以看出我是想用第0列date做横坐标,第1列energy做纵坐标绘制柱状图的。

解决方法

为什么会出现这种情况我不清楚,如果有知道的麻烦在评论区告诉我。

虽然原因未知但是我却找到了解决方案:

#绘制energy列关于index列的柱状图(此时横坐标为index列,即0,1,2,...)
dfPlot.plot.bar()

#再为横坐标设置标签,标签就是第一列的值
d=dfPlot.loc[:,'date'].to_list()
ticks=list(range(len(d)))
labels=d

plt.xticks(ticks,labels,rotation=90)

相当于把绘制柱状图给X轴设置刻度值分开来做。

关于xticks函数的用法,可以看Python:matplotlib.pyplot,其中有一部分是介绍这个函数的。