pandas绘制直方图。可以用概率/密度代替计数吗?

14 投票
2 回答
14947 浏览
提问于 2025-04-18 21:52

在pandas中,直方图显示的是每个区间的数量,而不是归一化的比例。在R语言中,这个选项是可以选择的。那么在Pandas中有没有类似的功能呢?如果没有,有没有简单的解决办法?

2 个回答

6

你可以像这样给 hist 函数传递密度参数:

df.hist(..., density=True)

在这里,密度参数作为 kwds 传递给 np.hist。

参考资料: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.hist.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

9

对我来说,这样做得到了想要的结果。

df = pd.DataFrame(np.random.randn(5000))
df.hist(normed = True)

在numpy的直方图函数中,'density'选项可以正常使用,但在pandas的hist函数中却不行。

2023年9月的更新: 大约在2020年,Pandas似乎开始使用density来代替normed。正如约翰所指出的,新的可用代码如下:

df = pd.DataFrame(np.random.randn(5000))
df.hist(density = True)

撰写回答