python matplotlib库直方图绘制详解


Posted in Python onAugust 10, 2019

例题:假设你获取了250部电影的时长(列表a中),希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据?

一些概念及问题:

  • 把数据分为多少组进行统计
  • 组数要适当,太少会有较大的统计误差,太多规律不明显
  • 组数:将数据分组,共分为多少组
  • 组距:指每个小组的两个端点的距离
  • 组数:极差 / 组距,也就是 (最大值-最小值)/ 组距
  • 频数分布直方图与频率分布直方图,hist()方法需增加参数normed
  • 注意:一般来说能够使用plt.hist()方法绘制的直方图是那些没有统计过的数据,如果是统计过的数据为了能绘制像直方图一样的效果,可以使用条形图plt.bar()方法来绘制,不过中间过程就会稍微麻烦一些
from matplotlib import pyplot as plt
import matplotlib
font = {'family': 'MicroSoft YaHei'}
matplotlib.rc('font', **font) # 使支持中文

a = [131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124,
   101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111, 78, 132, 124, 113, 150, 110, 117, 86,
   95, 144, 105, 126, 130, 126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136, 123, 117, 119, 105, 137,
   123, 128, 125, 104, 109, 134, 125, 127, 105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114, 105, 115,
   132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134, 156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102,
   123, 107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133, 112, 114, 122, 109, 106, 123, 116, 131, 127,
   115, 118, 112, 135, 115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154, 136, 100, 118, 119, 133, 134,
   106, 129, 126, 110, 111, 109, 141, 120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126, 114, 140, 103,
   130, 141, 117, 106, 114, 121, 114, 133, 137, 92, 121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113, 134,
   106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110, 105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146,
   133, 101, 131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111, 111, 133, 150]
# 计算组数
d = 3 # 组距
num_bins = (max(a) - min(a)) // d # 计算组距的公式
plt.figure(figsize=(20, 8), dpi=80) # 设置图片大小
plt.hist(a, num_bins) # 加上normed=True属性之后变为频率分布直方图
# 设置x轴的刻度
plt.xticks(range(min(a), max(a)+d, d))
plt.grid(alpha=0.3)
plt.show()

效果图

python matplotlib库直方图绘制详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
django Serializer序列化使用方法详解
Oct 16 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
Apache部署Django项目图文详解
Jul 30 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
python列表推导式入门学习解析
Dec 02 Python
python实现电子词典
Mar 03 Python
使用python实现飞机大战游戏
Mar 23 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
python字典的遍历3种方法详解
Aug 10 #Python
python命名空间(namespace)简单介绍
Aug 10 #Python
简单介绍python封装的基本知识
Aug 10 #Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 #Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 #Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 #Python
基于python二叉树的构造和打印例子
Aug 09 #Python
You might like
BBS(php & mysql)完整版(三)
2006/10/09 PHP
php一个找二层目录的小东东
2012/08/02 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
js实现手机发送验证码功能
2017/03/13 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
python计算auc的方法
2020/09/09 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
百思买美国官网:Best Buy
2016/07/28 全球购物
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
党员批评与自我批评(5篇)
2014/09/23 职场文书
学位证书委托书
2014/09/30 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
奖学金感谢信
2015/01/21 职场文书
导师鉴定意见
2015/06/05 职场文书
贷款工资证明范本
2015/06/12 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript
MySQL为id选择合适的数据类型
2021/06/07 MySQL
防止web项目中的SQL注入
2021/12/06 MySQL
Redis基本数据类型String常用操作命令
2022/06/01 Redis