在Python中按值绘制直方图排序

在Python中按值绘制直方图排序,python,pandas,histogram,Python,Pandas,Histogram,我有一个熊猫数据框,如下所示: number Art 10000 Comics 235 Crafts 293 Dance 824 如何绘制按值排序的直方图 演示: * * * * * * * * * * * * * * * * * ------------- x labels = Art/ Dance/ Crafts/ Comics 我尝试了pandas.DataFrame.hist,但不确定如何选择

我有一个熊猫数据框,如下所示:

              number
Art           10000
Comics        235
Crafts        293
Dance         824
如何绘制按值排序的直方图

演示:

*
* *
* *
* *
* *
* * * *
* * * *
-------------
x labels = Art/ Dance/ Crafts/ Comics

我尝试了pandas.DataFrame.hist,但不确定如何选择正确的参数。

您可以先对数据帧排序,然后使用dataframes
plot
方法创建绘图

测试数据(我将
category
设置为索引,因为这是实际数据的索引):

然后使用
df.sort_values()
number
排序,并调用
df.plot()


根据定义,您试图绘制的不是直方图。这是一个简单的条形图。你应该使用pandas.DataFrame.plot.bar:`谢谢。这很有效。但我只是想知道为什么你的绘图默认有多种颜色,而我的绘图只有一种颜色?嗯,不确定为什么默认颜色行为不同,我认为可能是版本特定的(请参阅:),如果你愿意,您可以输入颜色列表以手动控制每个条形图的颜色:答案中的图表是条形图,不一定是柱状图。
import pandas as pd

df = pd.DataFrame({'category': ['Art', 'Comics', 'Crafts', 'Dance'],
                   'number': [10000, 235, 293, 824]})
df.set_index('category', inplace=True)

          number
category        
Art        10000
Comics       235
Crafts       293
Dance        824
df.sort_values('number', inplace=True)

df.plot(y='number', kind='bar', legend=False)