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,其中有一部分是介绍这个函数的。