python直方图(频数密度)-深入浅出统计学

发布于 2022-09-12 04:42:42 字数 1203 浏览 21 评论 0

最近再看《深入浅出统计学》,想把里面的例子都用python画出来,才看几页就遇到问题了 - -
例子如下图:
image.png
画出上面的直方图,错误的表示如下图:
image.png
这个画出来了,实现代码如下:

data_rand1 = np.concatenate([np.random.randint(1,10,4300)/10,
                             np.random.randint(11,30,6900)/10,
                             np.random.randint(31,50,4900)/10,
                             np.random.randint(51,100,2000)/10,
                             np.random.randint(101,240,2100)/10
                             ])
bins1 = [0,1,3,5,10,24]
plt.hist(data_rand1,bins=bins1,histtype='bar',rwidth=10,edgecolor="black")

上面这个图不符合数据分析直方图的原则,频数与长方形面积成比例,明显时间跨度大的区间面积大了
所以书上对于这种跨度不一样的,需要求出频数密度在进度绘制,如下图:
image.png
image.png
频数密度,知道怎么算,代码也实现了,但算出来了,数据不知道咋画直方图了,直方图需要的是连续的数据值,而我这边算出来的是连续值的统计值。

bins1_with = [bins1[x] - bins1[x-1] for x in range(1,len(bins1))]
data8 = data7 / bins1_with

image.png
求大神指导同样的数据怎么画出上面第二个直方图那样。最后不知道表达的清楚不

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兔小萌 2022-09-19 04:42:42

解决了
plt.hist 参数density设置为True,即以密度的形式显示

plt.hist(data_rand1,bins=bins1,histtype='bar',density=True,rwidth=10,edgecolor="black")

image.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文