【问题标题】:Plot a histogram sort by values in Python在 Python 中按值绘制直方图排序
【发布时间】:2018-10-26 00:24:14
【问题描述】:

我有一个 Pandas 数据框如下:

              number
Art           10000
Comics        235
Crafts        293
Dance         824

如何绘制按值排序的直方图?

演示:

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

我试过pandas.DataFrame.hist,但不知道如何选择合适的参数。

【问题讨论】:

标签: python pandas histogram


【解决方案1】:

您可以先对数据框进行排序,然后使用您的数据框plot 方法创建绘图

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

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排序并调用df.plot()

df.sort_values('number', inplace=True)

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

【讨论】:

  • 谢谢。这样可行。但我只是想知道为什么你的情节默认有多种颜色,而我的情节只有单一颜色?
  • 嗯不确定为什么默认颜色行为不同,我认为它可能是特定于版本的(请参阅:stackoverflow.com/questions/45967310/…
  • 如果你愿意,你可以传入一个颜色列表来手动控制每个条的颜色:stackoverflow.com/questions/18897261/…
  • 答案中的图表是条形图,不一定是直方图。
猜你喜欢
  • 2011-08-21
  • 1970-01-01
  • 2019-02-27
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多