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 相关文章推荐
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
python类的继承实例详解
Mar 30 Python
python如何通过twisted实现数据库异步插入
Mar 20 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
Python基于dom操作xml数据的方法示例
May 12 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
python 从csv读数据到mysql的实例
Jun 21 Python
Python单元测试简单示例
Jul 03 Python
python实现随机梯度下降法
Mar 24 Python
Python日期时间Time模块实例详解
Apr 15 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
Python绘制散乱的点构成的图的方法
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 #Python
使用python绘制横竖条形图
python多次执行绘制条形图
Apr 20 #Python
Python 数据可视化工具 Pyecharts 安装及应用
python画条形图的具体代码
You might like
PHP安全配置
2006/12/06 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
jQuery后代选择器用法实例
2014/12/23 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
mysql 之通过配置文件链接数据库
2017/08/12 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
岗位职责的定义
2013/11/10 职场文书
支教自我鉴定
2014/01/18 职场文书
个人实习生的自我评价
2014/02/16 职场文书
银行授权委托书样本
2014/10/13 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书