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

最近再看《深入浅出统计学》,想把里面的例子都用python画出来,才看几页就遇到问题了 - -
例子如下图:
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")

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

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

data8 = data7 / bins1_with

python直方图(频数密度)-深入浅出统计学
求大神指导同样的数据怎么画出上面第二个直方图那样。最后不知道表达的清楚不


回答:

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

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

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

以上是 python直方图(频数密度)-深入浅出统计学 的全部内容, 来源链接: utcz.com/a/159378.html

回到顶部