python直方图(频数密度)-深入浅出统计学
最近再看《深入浅出统计学》,想把里面的例子都用python画出来,才看几页就遇到问题了 - -
例子如下图:
画出上面的直方图,错误的表示如下图:
这个画出来了,实现代码如下:
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")
上面这个图不符合数据分析直方图的原则,频数与长方形面积成比例,明显时间跨度大的区间面积大了
所以书上对于这种跨度不一样的,需要求出频数密度在进度绘制,如下图:
频数密度,知道怎么算,代码也实现了,但算出来了,数据不知道咋画直方图了,直方图需要的是连续的数据值,而我这边算出来的是连续值的统计值。
bins1_with = [bins1[x] - bins1[x-1] for x in range(1,len(bins1))]data8 = data7 / bins1_with
求大神指导同样的数据怎么画出上面第二个直方图那样。最后不知道表达的清楚不
回答:
解决了
plt.hist 参数density设置为True,即以密度的形式显示
plt.hist(data_rand1,bins=bins1,histtype='bar',density=True,rwidth=10,edgecolor="black")
以上是 python直方图(频数密度)-深入浅出统计学 的全部内容, 来源链接: utcz.com/a/159378.html