如何用python绘制正方形,python怎么绘制直方图
本文主要介绍用python绘制简单直方图的方法。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
直方图又称质量分布图,是一种统计报表图表,由一系列不同高度的竖条或线段表示。横轴表示数据类型,纵轴表示分布。直方图是数字数据分布的精确图形表示。绘制连续数据以显示一组或多组数据的分布。
直方图的绘制有点类似于条形图,需要将plt.bar()改为plt.hist(),改变图形的拟合方式来绘制直方图。例如,您获得了250部电影的数量,这些电影的时长都是80-140分钟。如何呈现电影时长的分布?
像往常一样,代码:
组号=极限范围/组距
从matplotlib导入pyplot作为plt
从matplotlib导入font_manager
随机导入
a=[对于范围(250)中的I,random.randint(80,140)]
打印(一份)
打印(最大(a)-最小(a))
#计算组数
D=3 #组距离
num_bins=(max(a)-min(a))//d
#设置图形尺寸
plt.figure(figsize=(20,8),dpi=80)
plt.hist(a,num _ bins)
#设置x轴刻度
plt.xticks(范围(最小值(a),最大值(a) d,d))
#设置网格
plt.grid(alpha=0.4)
plt.show()
运行结果如下:
80-140的250个随机整数由程序分析:随机数random.randint()生成,代表250部电影的时长。然后将时间段进行分组,将组距d设为3,那么(max-min)//d为分组数,然后用plt.hist()拟合组数和数据。在设置X刻度时,由于范围包含头部而不包含尾部,所以最后的截止位置要加上组距D才能完整显示。可以看出,该数字直方图可以显示每个时间段中每个电影持续时间的数量。那么问题又来了。想知道各时间段占总时间段的比例,也就是频率分布直方图怎么办?
如此简单!你只需要在plt.hist()中设置参数density=True就可以实现量的频率,其余不变。
代码如下:
组号=极限范围/组距
从matplotlib导入pyplot作为plt
从matplotlib导入font_manager
随机导入
a=[对于范围(250)中的I,random.randint(80,140)]
打印(一份)
打印(最大(a)-最小(a))
#计算组数
D=3 #组号
num_bins=(max(a)-min(a))//d
#设置图形尺寸
plt.figure(figsize=(20,8),dpi=80)
PLT。HIST (a,num _ bins,density=true) #使用密度实现频率转换
#设置x轴刻度
plt.xticks(范围(最小值(a),最大值(a) d,d))
#设置网格
plt.grid(alpha=0.4)
plt.show()
运行结果:
很明显,每个时间段的数量就变成了总的比例,也就是频率,达到了想要的效果。
想自己设置X轴的数据和距离,不均匀划分X轴的刻度怎么办?
上部代码:
#编码=utf-8
从matplotlib导入pyplot作为plt
从matplotlib导入font_manager
区间=[0,5,10,15,20,25,30,35,40,45,60,90,150]
宽度=[5,5,5,5,5,5,5,5,5,15,30,60]
数量=[836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(quantity)),quantity,width=1)
#设置x轴刻度
_ x=[范围(13)中的I为I-0.5]
plt.xticks(_x,间隔)
plt.grid(alpha=0.8)
plt.show()
运行结果如下:
如你所见,这很简单。你只需要设置X轴对应的数据,设置X轴对应的刻度,匹配数据即可。必须注意,分配组的数量与数据的数量相匹配。
在这篇文章中,总结:大体讲述了频率直方图和频率直方图的绘制方法,并通过图像对比找出每种直方图的优缺点,以便在工程中应用。
这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。