【问题标题】:can't chart what I want to chart with .hist() in Pandas无法在 Pandas 中使用 .hist() 绘制我想要绘制的图表
【发布时间】:2015-06-04 03:25:11
【问题描述】:

简单的问题。希望它真的很基本。我有一个名为firstperiod 的熊猫数据框和一个名为megaball 的列。 megaball的取值范围是1到25,这行代码:

print firstperiod.megaball.value_counts().sort_index()

给了我这个,这是我想看到的(每个可能值的出现次数)

1     12
2      4
3      9
4      4
5      3
6      6
7      5
8      8
9      7
10    10
11     6
12     5
13     3
14     5
15     6
16     8
17    15
18     7
19     8
20     5
21     8
22     7
23     1
24    11
25     9

但是当我去制作一个基本的直方图时,使用

firstperiod.megaball.value_counts().sort_index().hist()
plt.show()

图表根本不是我想要的(最大 y 值是 6,而它应该是 15,x 轴只到 16)。我做错了什么?

【问题讨论】:

    标签: python pandas matplotlib histogram


    【解决方案1】:

    您不想绘制这些值的直方图,您只想按原样绘制它们。试试:

    firstperiod.megaball.value_counts().sort_index().plot(kind='bar')
    

    您可能不得不摆弄其他情节选项才能使情节看起来完全符合您的要求。

    【讨论】:

    • 谢谢!你能解释一下为什么 .hist() 在这种情况下不起作用吗?因为毕竟,我确实想要这些值的直方图,不是吗?
    • 使用“value_counts()”已经是一种直方图。如果删除它,您将能够使用 hist 功能。
    • @SpicyClubSauce:基本上就是 Dror Hilman 所说的。直方图对值进行计数。 value_counts 也计算值。如果你两者都做,你会计算两次值。但是,我发现在许多情况下,对于离散数据,我想要value_counts 而不是hist,因为hist 将值分箱,而value_counts 实际上计算每个单独的不同值。
    • @BrenBarn @Dror Hilman 明白了。那么为什么firstperiod.megaball.hist() 会产生一个不正确的直方图,它不能反映我从 value_counts 得到的信息? x 轴在 25 范围内是正确的,但 y 值都不正确。
    • 即使firstperiod.megaball.value_counts().sort_index().plot(kind='hist') 也会产生同样的错误图表...
    猜你喜欢
    • 2020-11-10
    • 2021-12-20
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 2019-06-15
    • 2021-11-15
    • 2012-03-06
    相关资源
    最近更新 更多