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使用Supervisor来管理进程的方法
May 28 Python
Python简单实现enum功能的方法
Apr 25 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
Jun 29 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
python迭代dict的key和value的方法
Jul 06 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
Django中间件基础用法详解
Jul 18 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 Python
python自动化八大定位元素讲解
Jul 09 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
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
PHP输出日历表代码实例
2015/03/27 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
javascript一点特殊用法
2008/05/28 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
浅谈Angular路由复用策略
2017/10/04 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
C++:memset ,memcpy和strcpy的根本区别
2013/04/27 面试题
How to spawning asynchronous work in J2EE
2016/08/29 面试题
人力资源管理专业学生自我评价
2013/11/20 职场文书
保险内勤岗位职责
2014/04/05 职场文书
《秋游》教学反思
2014/04/24 职场文书
写给医院的感谢信
2015/01/22 职场文书
python - timeit 时间模块
2021/04/06 Python
浅谈Python中对象是如何被调用的
2022/04/06 Python