【问题标题】:Python Pandas histogram with dataframe带有数据框的 Python Pandas 直方图
【发布时间】:2020-01-10 19:27:37
【问题描述】:

我正在尝试创建一个直方图来表示数据框的多个元素。

数据框如下:

        Freq
Item 1   25
Item 2   35

我正在尝试制作一个底部有第 1 项和第 2 项的直方图,以及表示高度(在 y 轴上)的数字作为频率(请注意,我不想要累积频率)。

我试过这个:

dataframe = pd.DataFrame.from_dict(tour_adjust, orient='index')
plt.hist(dataframe, bins=10)
plt.show()

我得到这样的结果: Image showing the histogram

(实际结果仅根据数据框中元素的数量与预期不同)

与想要的结果相反,在这里看到:

Image showing the desired result

我尝试了 orient='index' 和没有它,但两者都不正确,不是我想要的。

【问题讨论】:

  • 您似乎需要调整您的垃圾箱。试试:plt.hist(dataframe, bins=2) 并告诉我们结果。
  • imgur.com/a/DyDnvV9,肯定更接近结果,但底部仍然没有标签。

标签: python pandas dataframe histogram


【解决方案1】:

如果您的数字已经是频率,那么您正在寻找的可能不是hist 图,而只是bar 图?

https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.bar.html

更新

您也可以直接从数据框中绘制,例如 this example:

>>> df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})
>>> ax = df.plot.bar(x='lab', y='val', rot=0)

【讨论】:

  • 这确实有道理,除了这是针对提交的作品,并且要求它必须是直方图。
  • 如果您的数据已经是频率,那么条形图实际上就是您要查找的直方图。
  • 我修改了我的答案,它最初是箱形图,而我的意思是条形图。
  • 这差不多了,然后我如何用项目的名称标记图表的底部?目前:imgur.com/a/CJqqcS1我想将x轴上的数字替换为项目名称,代码为:plt.bar([i for i, _ in enumerate(tour_list)], [i for i, _在枚举(tour_vals)])
  • 尝试直接从数据框中绘制,查看我的更新答案
【解决方案2】:

我认为你需要:

df.plot(kind = 'bar')

【讨论】:

  • 这就是我要找的。谢谢!
  • andrzejwp 的 UPDATE 部分是在我发布此答案时创建的...我认为这是一个副本..
  • 是的,当@JordanDalby 回复说他正在寻找直方图时,我更新了我的答案,当我意识到我提到的是箱线图而不是条形图时。我复制的代码来自 pandas 文档。
猜你喜欢
  • 2014-04-24
  • 2016-10-17
  • 1970-01-01
  • 2019-11-09
  • 2021-11-22
  • 1970-01-01
  • 2021-10-22
  • 2018-11-25
  • 1970-01-01
相关资源
最近更新 更多