python绘制简单直方图(质量分布图)的方法

这篇文章总的讲述了一下绘制频数直方图和频率直方图的绘制方法,通过图像进行比较,发现各个直方图的优缺点,以便在工程中进行运用

Posted in Python onApril 21, 2022

直方图,又称质量分布图,是一种统计报告图,由一系列高度不等的纵条或线段表示数据分布情况。用横轴表示数据类型,纵轴表示分布情况。直方图是数值数据分布的精确图形表示。绘制连续性的数据,展示一组或多组数据的分布状况。

直方图的绘制和条形图有些相似,需要把plt.bar()修改成plt.hist(),更改图形的拟合方式,即可绘制直方图。例如你获取到了250部电影的数量,他们的时长都在80-140分钟,如何呈现电影的时长分布情况呢?

老规矩,上代码:

'''
    组数=极差/组距
'''
from matplotlib import pyplot as plt
from matplotlib import font_manager
import random
 
a = [random.randint(80,140) for i in range(250)]
print(a)
print(max(a)-min(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(range(min(a), max(a)+d, d))
 
# 设置网格
plt.grid(alpha=0.4)
plt.show()

运行结果如下图:

python绘制简单直方图(质量分布图)的方法

程序分析:通过随机数random.randint()生成250个80-140的随机整数,代表250部电影的时长。然后要把时间段分成组,设置组距d为3,那么(max-min)//d即为分成的组数,然后通过plt.hist()对组数和数据进行拟合。设置x刻度时,因为range含头不含尾,所以最后截止的位置要加一个组距d,才能显示完全。可以看出,这个数字直方图可以显示每个电影时长在每个时段占得数目。那么问题又来了,如果想要知道在每个时段占总时段的比例呢,也就是频率分布直方图?

so easy! 只需要在plt.hist()里面设置参数density=True实现数量的频率化,其余不变。

代码如下:

'''
    组数=极差/组距
'''
from matplotlib import pyplot as plt
from matplotlib import font_manager
import random
 
a = [random.randint(80,140) for i in range(250)]
print(a)
print(max(a)-min(a))
 
# 计算组数
d = 3  # 组数
num_bins = (max(a)-min(a))//d
 
# 设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.hist(a,num_bins,density=True)  # 使用density实现频率化
 
# 设置x轴刻度
plt.xticks(range(min(a),max(a)+d,d))
 
# 设置网格
plt.grid(alpha=0.4)
plt.show()

运行结果:

python绘制简单直方图(质量分布图)的方法

显而易见,每个时段的数目变成了总体的占比,也就是频率,很好的达到了想要的效果。

那如果要自己设置数据自己设置x轴的距离,对x轴的刻度不均匀划分呢?

上代码:

# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_manager
 
interval = [0,5,10,15,20,25,30,35,40,45,60,90,150]
width = [5,5,5,5,5,5,5,5,5,15,30,60]
quantity = [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 = [i-0.5 for i in range(13)]
 
plt.xticks(_x, interval)
 
plt.grid(alpha=0.8)
plt.show()

运行结果如下图:

python绘制简单直方图(质量分布图)的方法

可以看出来,很简单,只需要把x轴对应的数据设置好,把对应x轴的刻度设置好,进行数据匹配即可。一定要注意,分配的组数和数据个数匹配问题。

总结:这篇文章总的讲述了一下绘制频数直方图和频率直方图的绘制方法,通过图像进行比较,发现各个直方图的优缺点,以便在工程中进行运用。

Python 相关文章推荐
python处理cookie详解
Feb 07 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
分析Python读取文件时的路径问题
Feb 11 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
pyqt5利用pyqtDesigner实现登录界面
Mar 28 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
Django实现发送邮件找回密码功能
Aug 12 Python
python 获取当前目录下的文件目录和文件名实例代码详解
Mar 10 Python
python设置表格边框的具体方法
Jul 17 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
Python 如何实现文件自动去重
Jun 02 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 Python
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
使用python绘制横竖条形图
python多次执行绘制条形图
Apr 20 #Python
Python 数据可视化工具 Pyecharts 安装及应用
python画条形图的具体代码
You might like
使用phpQuery获取数组的实例
2017/03/13 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
七种PHP开发环境搭建工具
2020/06/28 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
JavaScript 继承详解(二)
2009/07/13 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
通过代码实例了解Python sys模块
2020/09/14 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
教育学专业毕业生的自我评价
2013/11/21 职场文书
行政部总经理岗位职责
2014/01/04 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
学校捐书倡议书
2015/04/27 职场文书
廉洁自律证明
2015/06/24 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android