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 相关文章推荐
python新手经常遇到的17个错误分析
Jul 30 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
Python闭包执行时值的传递方式实例分析
Jun 04 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
django admin后管定制-显示字段的实例
Mar 11 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
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
Python制作exe文件简单流程
2019/01/24 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
django 读取图片到页面实例
2020/03/27 Python
django在开发中取消外键约束的实现
2020/05/20 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
python数据抓取3种方法总结
2021/02/07 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
初三开学计划书
2014/04/27 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
厉行节约工作总结
2015/08/12 职场文书
golang为什么要统一错误处理
2022/04/03 Golang