熊猫matplotlib barh酒吧打印从底部到顶部,但标签打印顶部到底部
我有一个数据框已被按值升序排序。它看起来像这样。熊猫matplotlib barh酒吧打印从底部到顶部,但标签打印顶部到底部
Name Count
19 PAGEBGFX 1
18 CODE 1
17 .orpc 2
16 .sdata 3
15 PAGE 4
14 PAGELK 4
13 .data1 4
12 data 6
11 .tls 6
10 text 6
9 .ndata 8
8 minATL 13
7 .imrsiv 41
6 .rdata 209
5 .pdata 501
4 .idata 660
3 .reloc 896
2 .data 930
1 .rsrc 962
0 .text 998
当我使用水平条形图进行绘制时,条似乎从底部到顶部填充。所以我的数据框中的第一行是我的图表中的底部栏。这是绘图代码。
ypos = np.arange(len(section_names_df)) + .1
plt.barh(ypos, section_names_df['Count'])
plt.yticks(ypos +.4, section_names_df['Name'])
plt.show()
所以标签似乎已经从顶部到所述数据帧的底部,但杆的长度填充从底部到顶部被填充。这是它应该如何或我做错了什么?任何关于如何使这更简单的指针?
编辑我创建了一个iPython笔记本来演示问题,用完整的代码来重现问题。 http://nbviewer.ipython.org/gist/blackfist/dd0941f3ddbbc0f724a1
尝试调用
section_names_df.reset_index(inplace=True)
绘制之前。问题是数据帧按索引的顺序迭代,因此需要重新设置以匹配排序的顺序。
谢谢凯尔。你知道一种方法来排序和reset_index在一个命令?这有点刺激。 – 2014-08-31 04:42:03
@KevinThompson,我不知道一个优雅的解决方案,但你可以使用类似df.index = numpy.argsort(df [“column”])。 – 2014-08-31 04:45:39
您可能想重新提出这个问题,以获得熊猫专家的更多关注。 – 2014-08-31 04:57:10
对于你的问题的第一部分,你会想到用这个代码相反的顺序来扭转你的数据帧BARH图绘制之前:
df = df.iloc[::-1]
进一步审查似乎表明该问题与分选做绘图前的数据帧。如果我不分类,那么事情看起来很好。 – 2014-08-31 03:35:39