Matplotlib之直方图绘制
文章目录
- 直方图简介
- 直方图的应用场景
- 绘制直方图
- 案例
直方图简介
直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的条纹表示数据分
布的情况。一般用横轴表示数据类型,纵轴表示分布情况。
直方图是数值数据分布的精确图形表示。为了构建直方图,第一步是将值的范围分段,即将整个值
的范围分成一系列间隔,然后计算每个间隔中有多少值。这些值通常被指定为连续的,不重叠的变
量间隔。间隔必须相邻,并且通常是(但不是必须的)相等的大小。
直方图的应用场景
- 显示各组数据数量分布的情况。
- 用于观察异常或孤立数据。
- 抽取的样本数量过小,将会产生较大误差,可信度低,也就失去了统计的意义。因此,样本数
不应少于50个。
绘制直方图
直方图的绘制方法,使用的是 plt.hist 方法来实现,这个方法的参数以及返回值如下:
参数:
- x :数组或者可以循环的序列。直方图将会从这组数据中进行分组。
- bins :数字或者序列(数组/列表等)。如果是数字,代表的是要分成多少组。如果是序
列,那么就会按照序列中指定的值进行分组。比如 [1,2,3,4] ,那么分组的时候会按照三个
区间分成3组,分别是 [1,2)/[2,3)/[3,4] 。- range :元组或者None,如果为元组,那么指定 x 划分区间的最大值和最小值。如
果 bins 是一个序列,那么 range 没有有没有设置没有任何影响。- density :默认是 False ,如果等于 True ,那么将会使用频率分布直方图。每个条形表示
的不是个数,而是 频率/组距 (落在各组样本数据的个数称为频数,频数除以样本总个数为频
率)。- cumulative :如果这个和 density 都等于 True ,那么返回值的第一个参数会不断的累加,
最终等于 1 。- 其他参数:请参考:matplotlib.pyplot.hist官方文档。
返回值:
- n :数组。每个区间内值出现的个数,如果 density=True ,那么这个将返回的是 频率/组 距 。
- bins :数组。区间的值。
- patches :数组。每根条的对象,类型是 matplotlib.patches.Rectangle 。
案例
比如有一组电影票房时长,想要看下这组票房时长的数据,那么可以通过以下代码来实现:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pddurations = [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]
plt.figure(figsize=(15,5))
nums,bins,patches = plt.hist(durations,bins=20,edgecolor='k')
plt.xticks(bins,bins)
for num,bin in zip(nums,bins):plt.annotate(num,xy=(bin,num),xytext=(bin+1.5,num+0.5))
plt.show()
另外,也可以通过 density=True ,来实现频率分布直方图。示例代码如下:
plt.figure(figsize=(15,5))
nums,bins,patches = plt.hist(durations,bins=20,edgecolor='k',density=True)
plt.xticks(bins,bins)
for num,bin in zip(nums,bins):plt.annotate("%.4f"%num,xy=(bin,num),xytext=(bin+0.2,num+0.0005))
而如果想要让 nums 的总和为 1 ,那么就需要设置 cumulative=True 参数,示例代码如下:
plt.figure(figsize=(15,5))
nums,bins,patches = plt.hist(durations,bins=20,edgecolor='k',density=True,cumulative=True)
plt.xticks(bins,bins)
for num,bin in zip(nums,bins):plt.annotate("%.4f"%num,xy=(bin,num),xytext=(bin+0.2,num+0.0005))
为便于学习交流草创了一个q群: Python炼丹大师交流群
后端 爬虫 数据分析 机器学习等和python相关的都可以在此畅所欲言
编程资源:编程学习资源传送门
文章到此结束,但愿本文能对你有一点点帮助,欢迎三连,点个赞,收个藏啥的,有问题的尽管砸来,我有故事你有酒,好好交流不分手!下次见!
Matplotlib之直方图绘制相关推荐
- python绘制直方图-python matplotlib库直方图绘制详解
例题:假设你获取了250部电影的时长(列表a中),希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据? 一些概念及问题: 把数据分 ...
- Matplotlib常见图形绘制(折线图、散点图、柱状图、直方图、饼图)
Matplotlib能够绘制折线图.散点图.柱状图.直方图.饼图. 我们需要知道不同的统计图的意义,以此来决定选择哪种统计图来呈现我们的数据. 1 常见图形种类及意义 折线图:以折线的上升或下降来表示 ...
- python excel 图表 matplotlib_Python数据可视化:matplotlib 常见图表绘制——直方图
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:斑点鱼 matplotlib常见图表绘制--直方图 series.h ...
- Python dataframe绘制饼图_【python可视化】:matplotlib:常见图表绘制——面积图、填图、饼图...
•本文字数:约620字•阅读时长:约2分钟•难度:1颗星 斑点鱼将Matplotlib分为五部分: 图表窗口设置.图表基本元素及图表输出.图表样式参数.子图创建.常见图表绘制 本文讲第五部分:matp ...
- 直方图绘制与直方图均衡化实现
一,直方图的绘制 1.直方图的概念: 在图像处理中,经常用到直方图,如颜色直方图.灰度直方图等. 图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所 占的多少. 图像的灰 ...
- matplotlib 常用图形绘制与官方文档
matplotlib 常用图形绘制与官方文档 matplotlib.org Python库matplotlib 图形绘制 官方教程目录 matplotlib.pyplot matplotlib.pyp ...
- python读取csv数据画直方图_python 中直方图绘制
一.直方图绘制参数详解 1.plt.hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom= ...
- Matplotlib使用和绘制二维图表
目录 1 Matplotlib简介 1.1 什么是Matplotlib - 画二维图表的python库 1.2 为什么要学习Matplotlib - 画图 1.3 实现一个简单的Matplotlib画 ...
- 数据可视化库 matplotlib 入门 8——绘制文本与数学表达式、图形处理
Matplotlib 库使用入门8 绘制文本与数学表达式 绘制文本的函数与功能 绘制数学表达式 图像处理 在前面关于 matploblib 的文章中,笔者分别介绍了: matplotlib 库的安装与 ...
- python Numpy 的基础用法以及 matplotlib 基础图形绘制
python Numpy 的基础用法以及 matplotlib 基础图形绘制 1. 环境搭建 1.1 Anaconda anaconda 集成了数据分析,科学计算相关的所有常用安装包,比如Numo ...
最新文章
- java类安卓app 简介_android.app.Activity 的介绍
- [QUICK UI] 有哪些目前流行的前端框架
- LetCode-MSSQL查找重复的电子邮箱
- [.NET] 《Effective C#》快速笔记(一)- C# 语言习惯
- 操作系统实验ucore lab1
- 展望下未来的计算机400字,展望未来作文400字
- 2020年GitHub 上那些优秀Android开源库,这里是Top10!
- 家庭版取消灰色勾选加密内容以便保护数据的方法
- coolpad大神f2Android,酷派大神f2致命缺点和优点有什么【图文】
- 马赛克与反马赛克技术
- 公司上市有几种方式?
- 新浪微博开放平台账号申请(基于dcloud开发)
- XTM计算机辅助翻译,计算机辅助翻译原理与实践
- 芋道 Spring Boot API 接口文档 Swagger 入门
- Monkey测试手机BUG重现及解决方法
- 探索ESP8285(2)搭建Windows版MQTT服务器
- pycharm中安装ctypes模块
- SSH使用及协议分析。
- arcgis制作地图册
- 通过TSS软件栈使用TPM——获取并改变TPM寄存器-学习笔记1
热门文章
- 计算机扩大C盘分区容量,教你在保留数据的情况下,如何把C盘容量无限扩大!...
- python拦截广告弹窗_通过python实现弹窗广告拦截过程详解
- Flash实例教程:AS3代码简单表现照片底片效果
- matlab离散系统的频率响应,离散系统频率响应和零极点分布实验报告
- 项目vite1.0升级到2.0打包遇到Some chunks are larger问题如何解决
- 页面无法自动播放音频的解决方案
- c++中类的private的static变量实现类对象的数据共享
- 一杯免费咖啡引发的ERP上云思考
- png在ai转为路径_ai怎么把png转换为路径
- 书摘—吃我吃我:38种改善情绪和恢复精力的神奇食材