为什么pandas在直方图中插入空格?

时间:2016-05-11 10:50:45

标签: python pandas matplotlib histogram

可以使用CSV格式找到here的示例数据。

给出以下代码:

figure()
grp.vis.plot(kind='hist', alpha=.5, normed=True)
show()

我得到了下图:

enter image description here

为什么大熊猫在图中插入空白?值的范围从0到7,并且都被表示,所以我认为没有理由这样做。

非常感谢!

2 个答案:

答案 0 :(得分:4)

因为默认值为bins的参数10位于hist中:

grp.vis.plot(kind='hist', alpha=.5, bins=7, normed=True)

graph

如果省略rwidth

grp.vis.plot(kind='hist', alpha=.5, bins=7)

graph1

Docs

  

bins :整数或array_like,可选

     

如果给出一个整数,则返回bin + 1 bin边缘,与numpy.histogram()一致,numpy version> = 1.3。

     

如果垃圾箱是一个序列,则支持不等间距的垃圾箱。

     

默认为10

     

rwidth :标量或无,可选

     

条的相对宽度作为箱宽的一部分。如果为None,则自动计算宽度。

     

如果histt​​ype是'step'或'stepfilled',则忽略。

     

默认为无

答案 1 :(得分:1)

对于一些偏离主题的自我推销感到抱歉,但也许您可能会发现我的库 physt (请参阅https://github.com/janpipek/physt)。在其他功能中,它提供了不同的分箱模式,其中一个(“整数”)适用于整数数据的自动“分箱”。

import pandas as pd
import physt

df = pd.read_csv("visanal_so.csv")
ax = physt.h1(df.vis, "integer").plot(density=True, alpha=0.5)
ax.set_ylabel("Frequency");

What you get

P.S。请注意,该图与原始图类似,但与@jezrael所显示的不同。自动pandas binning表现得有点奇怪,绝对不符合你的预期。