Matplotlib——直方图_hist()函数_histogram()函数_二维数据
一个简单的直方图可以直观地展示数据的分布,包括数值分布的区间、密度和形状。
在实际的工作过程中,我们可能需要对数据进行数学建模和统计分析,这些数据处理技术往往基于数据符合的某些假设,而直方图是检查数据最好的选择之一。
下面通过 NumPy 模块提供的随机数据生成函数,产生符合正态分布的随机数据,并以它为样例绘制直方图。
import numpy as np
import matplotlib.pyplot as pltrandn_data = np.random.randn(1000)plt.hist(randn_data)plt.show()
这里用到了hist()
函数。
plt.hist(x, bins=10, range=None, normed=False,weights=None, cumulative=False, bottom=None,histtype='bar', align='mid', orientation='vertical',rwidth=None, log=False, cokor=None,label=None, satacked=False)
“●”的打法:在英文输入法下长按alt
然后输入 41457 41457 41457松开alt
就有了
● x :指定要绘制直方图的数据。
● bins :指定直方图条形的个数。
● range :指定直方图数据的上下边界,默认包含绘图数据的最大值和最小值。
● density :是否将直方图的频数转换成频率。
● weights :为每一个数据点设置权重。
● cumulative :是否需要计算累计频数或频率。
● bottom :为直方图的每个条形添加基准线,默认为0。
● histtype :指定直方图的类型,默认为 bar,此外还有’barstacked’、‘step’、‘stepfilled’。
● align :设置条形边界值的对齐方式,默认为mid,此外还有 ‘left’ 和 ‘right’。
● orientation :设置直方图的放方向,默认为垂直方向。
● rwidth :设置直方图条形宽度的百分比。
● log :是否需要对绘图数据进行 log 变换。
● color :设置直方图的填充色。
● label :设置直方图的标签,可通过 legend 展示其图例。
● stacked :当有多个数据时,是否需要将直方图呈堆叠放,默认水平放。
下面尝试一些案例
plt.hist(randn_data,bins=30,density=True,histtype='step',color='steelblue')
如果要比较多个数据的分布,可以使用选项histtype=‘stepfilled’,并设置一定的透明度。
import numpy as np
import matplotlib.pyplot as pltrandn_data = np.random.randn(1000)_ = plt.hist(randn_data, bins=30, density=True, histtype='step', color='steelblue')x1 = np.random.normal(0, 0.4, 1000)
x2 = np.random.normal(-3, 1, 1000)
x3 = np.random.normal(2, 2, 1000)kwargs = dict(histtype='stepfilled', alpha=0.5, density=True, bins=50)_ = plt.hist(x1, **kwargs)
#"**"意思为设置默认参数
_ = plt.hist(x2, **kwargs)
_ = plt.hist(x3, **kwargs)plt.show()
有时我们不仅想通过直方图直观地看到数据,而且想获取不同条形个数区间的频数/频率。NumPy提供的histogram()
函数可以满足这个需求。
下面从randn_data
中提取设置10个条形时的各自的频数。
import numpy as np
import matplotlib.pyplot as pltrandn_data = np.random.randn(1000)counts, bin_edges = np.histogram(randn_data, bins=10)print(counts)
输出:
[ 9 31 73 153 235 205 166 87 33 8]Process finished with exit code 0
设置density=True
可以获取相应的频率。
density,bin_edges=np.histogram(randn_data,bins=10,density=True)print(density)
输出:
[0.01329965 0.04137668 0.12265231 0.27190391 0.38421204 0.322147020.21870532 0.07832015 0.0192106 0.00591095]Process finished with exit code 0
如果使用的是二维数据,Matplotlib同样提供了hist2d()
函数用于查看数据的分布。一维数据中直方图将数据切分到不同的区间中,而二维直方图在两个维度进行切分,因此会得到一个一个的小矩形。
下面演示二维数据绘图
import numpy as np
import matplotlib.pyplot as pltmean = [0, 0] # 均值
cov = [[1, 1], [1, 2]] # 协方差矩阵
x, y = np.random.multivariate_normal(mean, cov, 10000).T# 绘制图形
plt.hist2d(x, y, bins=30, cmap='Blues')
cb = plt.colorbar()
cb.set_label(u'计数')plt.show()
Matplotlib——直方图_hist()函数_histogram()函数_二维数据相关推荐
- 【Python】函数图像绘制:二维图像、三维图像、散点图、心形图
[Python]函数图像绘制:二维图像.三维图像.散点图.心形图 所有需要用的包 二维图像 三维图像 散点图绘制 心形图绘制 所有需要用的包 from mpl_toolkits.mplot3d imp ...
- iterp2函数--------二维数据内插值
[语法说明] 1.zi=interp1(x,y,z,xi,yi):返回矩阵zi,其元素包含对应于参量xi和yi的元素.用户可以输入行向量和列向量xi和yi,此时,输出向量zi与矩阵meshgrid(x ...
- 算法013:二维数组中的查找-在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断中是否存在
题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.示例: 现有 ...
- MATLAB用fwind2函数设计近似圆对称二维带通滤波器
%用fwind2函数设计近似圆对称二维带通滤波器 %通带频率为[0.1 0.5] %期望带通频率响应创建矩阵Hd %用freqspace函数创建频率范围向量f1和f2. [f1,f2] = freqs ...
- python二维图颜色函数_Python scipy的二维图像卷积运算与图像模糊处理操作示例
本文实例讲述了Python scipy的二维图像卷积运算与图像模糊处理操作.分享给大家供大家参考,具体如下: 二维图像卷积运算 一 代码 import numpy as np from scipy i ...
- 剑指offer_第1题_二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同) 每一行都按照从左到右递增的顺序排序 每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...
- 【机器学习】python使用matplotlib进行二维数据绘图并保存为png图片
端到端机器学习导航: [机器学习]python借助pandas加载并显示csv数据文件,并绘制直方图 [机器学习]python使用matplotlib进行二维数据绘图并保存为png图片 [机器学习]p ...
- 如何将多个一维列表转化为二维列表_数据分析2_如何处理一维、二维数据
吞一块大饼,还不如切成小块吃得香 常见的数据集,要么是数列,要么是表格: 因此,数据分析最首要的是,处理一维.二维数据. 主要知识点可参考如图. 如需要,可点击以下百度网盘链接下载数据分析基础知识图P ...
- C# 传递数组参数_一维数组_二维数组
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
最新文章
- 张孝祥javascript学习笔记1---HTMLCSS
- 职场疑问:如何进行技术面试
- c++Builder XE6 MD5 加密算法 BASE64 URL 编码
- RFI远程文件包含的漏洞
- 王朔《我的千岁寒》:可以看却无法看到
- checkPathValidity 检查所有agent的corridor的m_path是否有效
- php类常量的特点,php类常量是什么?类常量用法详解
- 某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!
- java.lang.IllegalArgumentException: Request header is too large
- iOS开发之oc(五)--成员变量(实例变量)
- Tensorflow——placeholder(矩阵运算小实例)
- 如何时刻保持在目标的正确轨道上
- 2017-12-28 Linux学习笔记
- openai-gpt_为什么GPT-3感觉像是编程
- 中望cad文字显示问号怎么办_中望CAD图纸显示乱码怎么办?
- java is alphabetic_\p{IsAlphabetic}
- PAAS平台的理解及与LaaS,SaaS的关系
- 从女孩儿手中音乐般滑落
- 用少量箭射爆气球,leetcode习题
- Unity中Scale详解