为什么Pandas错误地绘制索引值(x_ticklabels)?

时间:2015-10-12 14:54:54

标签: python pandas plot

我有这个数据框

                        Poverty      White      Black  Native_American
CHSI_State_Name                                                          
Alabama               17.085075  69.795522  28.510448         0.570149   
Alaska                12.144444  54.485185   1.174074        36.159259   
Arizona               16.840000  81.086667   1.886667        14.813333   
...

我画这样的人物:

fig, ax = plt.subplots()
poverty.plot(ax = ax, figsize = (16, 8))
ax.set_xticklabels(poverty.index, rotation = 90)

fig.savefig('output7.png', xbbox_inches = 'tight')

我希望文件在每个值(所有状态)下都有状态名称,但是它只有少数差距很大。Output graph

我做错了什么?谢谢!

3 个答案:

答案 0 :(得分:1)

这似乎是这样做的:

ax.set_xticklabels(poverty.index, rotation = 90)
ax.set_xticks(range(len(poverty.index)))

答案 1 :(得分:1)

代码中的问题是

ax.set_xticklabels(poverty.index, rotation = 90)

在数据范围上设置xticklabels。如果您的数据范围从10到16,它将把名称放在10,11,12,13,14和15上。 您也不想在每个整数xtick上放置标签,而是要指定标签的位置/顺序。

使用

ax.set_xticks(range(len(poverty.index)))

您指定的范围与poverty.index一样大,以确保每个标签都位于您的地块内。

答案 2 :(得分:0)

尝试使用以下代替ax.set_xticklabels(poverty.index, rotation = 90)

locs, labels = plt.xticks()
plt.setp(labels, rotation=90)

对我而言,它符合预期的行为。但实际上我不知道你的方法是如何工作的。这是一项提案解决方法。希望有所帮助。