使用matplotlib缺少第一个x标签

时间:2018-07-24 04:13:18

标签: python pandas matplotlib label

这是我的数据

a3=pd.DataFrame({'OfficeName':['a','b','c','d','e','f','g','h'],
                 'Ratio': [0.1,0.15,0.2,0.3,0.2,0.25,0.1,0.4]})

这是我绘制条形图的代码:

fig, ax = plt.subplots()
ind = np.arange(a3.loc[:,'OfficeName'].nunique())    # the x locations for the groups
width = 0.35         # the width of the bars
p1 = ax.bar(ind,a3.loc[:,'Ratio'],width)
ax.set_title('Ratio of refunds to purchases')
ax.set_xticklabels(a3.loc[:,'OfficeName'],ha='center')
#ax.set_xticklabels(['a','b','c','d','e','f','g','h'],ha='center')
ax.set_xlabel('x Group')
ax.set_ylabel('Ratio')
plt.show()

但是,在我的图表中缺少第一个x标签:

enter image description here

我认为这个问题与Matplotlib: Move x-axis tick labels one position to left不同,因为我什至不需要旋转x标签。

谁能解释为什么会发生这种情况以及如何解决?

1 个答案:

答案 0 :(得分:1)

有一种更简单的方法可以在熊猫中生成条形图:

a3.set_index('OfficeName').plot.bar(width=0.35, legend=False)
plt.xticks(rotation=0, ha='center')

(您仍然需要设置x和y轴标签以及标题。)