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基础教程之udp端口扫描
Feb 10 Python
Python 字符串操作方法大全
Mar 11 Python
Python与Redis的连接教程
Apr 22 Python
Python中的localtime()方法使用详解
May 22 Python
解读Django框架中的低层次缓存API
Jul 24 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
python实现小世界网络生成
Nov 21 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 Python
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
使用python绘制横竖条形图
python多次执行绘制条形图
Apr 20 #Python
Python 数据可视化工具 Pyecharts 安装及应用
python画条形图的具体代码
You might like
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
js Event对象的5种坐标
2011/09/12 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
Django框架下在视图中使用模版的方法
2015/07/16 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
Django框架表单操作实例分析
2019/11/04 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
python导入库的具体方法
2020/06/18 Python
python反扒机制的5种解决方法
2021/02/06 Python
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
政法大学毕业生自荐信范文
2014/01/01 职场文书
优秀交警事迹材料
2014/01/26 职场文书
领导干部保密承诺书
2014/08/30 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书
运动员入场词
2015/07/18 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
亲情作文之母爱
2019/09/25 职场文书