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

问题

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

预期

 

错误绘制

原始数据

 

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

原始代码

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

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

原因

暂时未知,如果有知道的麻烦在评论区告诉我。

我猜想是因为系统不知道无法组织第0列date列的数据为横坐标,因为它不像0 1 2这种有明显的大小顺序可以正常分布在横坐标轴上。

解决方法

解决方案:

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

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

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

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

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

 

posted @ 2023-03-27 17:39  ShineLe  阅读(482)  评论(0编辑  收藏  举报