python图形库matplotlib,matplot画直方图
Matplotlib是Python的绘图库,它允许用户轻松地绘制数据,并提供各种输出格式。本文将向大家介绍如何用matplotlib绘制直方图,有兴趣的朋友可以学习一下。
00-1010 1.关于直方图2.plt.hist()3。画一个简单的频率分布直方图4。绘制频率分布直方图5。累积分布直方图(水平方向)
目录
直方图也叫质量分布图。虽然它看起来像直方图,
其实差别很大。通常直方图的横轴表示数据类型,纵轴表示每种数据类型的分布。
直方图可分为频率分布直方图和频率分布直方图。其画图方法没有太大区别,只是描述的事件不同。频率分布直方图描述了事件的数量,而频率分布描述了事件发生的频率。
至于频率分布直方图,可以理解为一种“密度图”。频率直方图和密度图都可以用来描述事件的概率分布,其中频率直方图描述的是离散型随机变量的概率分布,而密度图描述的是连续型随机变量的概率分布。
1.关于直方图
直方图绘制是通过plt.hist()方法实现的,其常用参数有:
x数据集
统计数据的区间分布。它可以是包含数字元素或数值的列表。当它是一个数值时,可以与range参数一起使用。
范围-元组类型,显示的间隔。
使用数值仓和范围参数设置范围分布时:range确定一个范围,传入形式为元组(注意不是range对象),左右端点值都可以取。箱类型指示划分范围的部分(相等部分)的数量。
Density - Boolean,显示频率统计结果。默认值为None(相当于False);如果设置为False,将不显示频率统计结果;设置为True显示频率统计结果,即绘制的图像从频率分布直方图变为频率分布直方图。
HIST Type-可选参数,即直方图的类型。默认值为bar,即绘制的“柱状”条。您也可以将其设置为条形堆叠、步进和步进填充。
align-可选参数,控制直方图的水平分布。设置值为左、中或右,默认值为中。也推荐mid。左右会产生一些空白区域。
Log - Boolean,默认值为False,即Y轴是否选择指数刻度。
Stacked - Boolean,默认值为False,表示它是否是堆叠直方图。
边缘颜色-设置边缘颜色。
面颜色-可以用来设置直方图的颜色,或简称为颜色。
方向-直方图的方向,默认情况下为(“垂直”),而“水平”表示水平。
累积-默认值为False,表示没有累积。如果为真,则设置累积分级直方图。
2.plt.hist()
将matplotlib.pyplot作为plt导入
将numpy作为np导入
PLT . RC params[ font . sans-serif ]=[ sim hei ]
PLT . RC params[ axes . unicode _ MINUS ]=False
PLT . RC params[ axes . face color ]= # cc 00 ff
#将随机数种子设置为30
种子(30)
data=np.random.randint(0,100,100)
plt.hist(data,bin=[0,25,50,75,100],facecolor=#ffff00 ,edgecolor=#FF0000 )
Plt.xlabel(X指示器)
Plt.ylabel(样本数)
PLT . title(“x指标频率分布直方图”)
plt.show()
3. 绘制一幅简单的 频数 分布直方图
>
将density设置为True即可·。
此外我们再修改一些细节,将histtype参数设置为stepfilled(梯状且填充)。
并把y轴的标签由样本个数改为样本频率。
import matplotlib.pyplot as pltimport numpy as np
plt.rcParams[font.sans-serif] = [SimHei]
plt.rcParams[axes.unicode_minus] = False
plt.rcParams[axes.facecolor] =#cc00ff
np.random.seed(30)
data = np.random.randint(0, 100, 100)
plt.hist(data, bins=[0, 25, 50, 75, 100], facecolor=#ffff00, edgecolor=#FF0000, density=True, histtype=stepfilled)
plt.xlabel(X指标)
plt.ylabel(样本频率)
plt.title(X指标频数分布直方图)
plt.show()
图像效果如下:
5. 累积分布直方图(水平方向)
增加参数cumulative=True, orientation=‘horizontal’。
此外,因为图像变成了水平方向,所以也需要把x、y轴标签互换并稍作调整。
这里设置区间分布使用数值型的bins和range参数设定,范围为0-100,区间分割为10等份。
import matplotlib.pyplot as pltimport numpy as np
plt.rcParams[font.sans-serif] = [SimHei]
plt.rcParams[axes.unicode_minus] = False
plt.rcParams[axes.facecolor] =#cc00ff
np.random.seed(30)
data = np.random.randint(0, 100, 100)
plt.hist(data, bins=10, range=(0, 100), facecolor=#ffff00, edgecolor=#FF0000, density=True, cumulative=True, orientation=horizontal)
plt.xlabel(样本累积频率)
plt.ylabel(X指标)
plt.title(X指标频数分布直方图)
plt.show()
图像效果如下:
到此这篇关于基于Python+Matplotlib实现直方图的绘制的文章就介绍到这了,更多相关Python Matplotlib直方图内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。