美文网首页Matplotlibfunny生物信息机器学习
matplotlib可视化篇hist()--直方图

matplotlib可视化篇hist()--直方图

作者: CodeFUN | 来源:发表于2019-01-31 15:22 被阅读3次

直方图与柱状图外观表现很相似,用来展现连续型数据分布特征的统计图形(柱状图主要展现离散型数据分布),官方hist项目地址

函数:matplotlib.pyplot.hist(x,bins=None,range=None, density=None, bottom=None, histtype='bar', align='mid', log=False, color=None, label=None, stacked=False, normed=None)

关键参数

x: 数据集,最终的直方图将对数据集进行统计
bins: 统计的区间分布
range: tuple, 显示的区间,测试发现添加range并没有达到想要的效果,即显示指定区间统计结果,如果有小伙伴知道,欢迎评论,谢谢
density: bool,默认为false,显示的是频数统计结果,为True则显示频率统计结果,这里需要注意,频率统计结果=区间数目/(总数*区间宽度),和normed效果一致,官方推荐使用density
histtype: 可选{'bar', 'barstacked', 'step', 'stepfilled'}之一,默认为bar,推荐使用默认配置,step使用的是梯状,stepfilled则会对梯状内部进行填充,效果与bar类似
align: 可选{'left', 'mid', 'right'}之一,默认为'mid',控制柱状图的水平分布,left或者right,会有部分空白区域,推荐使用默认
log: bool,默认False,即y坐标轴是否选择指数刻度
stacked: bool,默认为False,是否为堆积状图

最简实现

import matplotlib.pyplot as plt
import numpy as np

x=np.random.randint(0,100,100)#生成【0-100】之间的100个数据,即 数据集
bins=np.arange(0,101,10)#设置连续的边界值,即直方图的分布区间[0,10],[10,20]...
#直方图会进行统计各个区间的数值
plt.hist(x,bins,color='fuchsia',alpha=0.5)#alpha设置透明度,0为完全透明

plt.xlabel('scores')
plt.ylabel('count')
plt.xlim(0,100)#设置x轴分布范围

plt.show()

效果图:

hist直方图效果 注意bins的范围设置,如果使用np.arange(0,100,10),则不会统计[90-100]区间的频数,结果如下 修改bins结果 官方教程中还涉及对直方图进行曲线拟合**,本例由于不符合正态分布,这里将每个柱状图的中心点进行连接,hist()第一个返回值是统计各个区间的频数,第二个返回值是bins,即区间,所以我们有了点坐标,使用plot函数即可,实现过程如下:
import matplotlib.pyplot as plt
import numpy as np

x=np.random.randint(0,100,100)#生成【0-100】之间的100个数据,即 数据集
bins=np.arange(0,101,10)#设置连续的边界值,即直方图的分布区间[0,10],[10,20]...
width=10#柱状图的宽度
#直方图会进行统计各个区间的数值
frequency_each,_,_= plt.hist(x,bins,color='deepskyblue',width=width,alpha=0.7)#alpha设置透明度,0为完全透明
plt.xlabel('scores')
plt.ylabel('count')
plt.xlim(0,100)#设置x轴分布范围
plt.plot(bins[1:]-(width//2),frequency_each,color='palevioletred')#利用返回值来绘制区间中点连线
plt.show()

处理效果:

连接柱状图中心点 注意:返回值的bins的数据长度比频数的长度大1,这里推荐使用从1开始直到bins结束,即将第0个元素去掉,保证二者的长度一致,当然还需要减去width的一半,保证在中点。

相关文章

  • matplotlib可视化篇hist()--直方图

    直方图与柱状图外观表现很相似,用来展现连续型数据分布特征的统计图形(柱状图主要展现离散型数据分布),官方hist项...

  • matplotlib可视化之hist直方图

    直方图 直方图(英语:Histogram)是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统...

  • matplotlib之直方图hist

    问题描述 当我们想展示不同的数据在所有数据样本中的分布时,需要用直方图来展示。当然在数据量很大的时候,如果为每个数...

  • python matplotlib模块: hist(直方图)

    需要注意的是边缘数据存在导致结果看上去"不完整"的情况: 最右边的数据看不清楚,但是确实存在,只是数据太小了。这时...

  • Python推荐阅读文章

    matplotlib可视化 plot所有颜色属性 matplotlib动画制作 重叠的直方图 plot指令 sca...

  • mmdetection可视化

    0. 可视化特征图 1. matplotlib > hist 参考:176:hxm/wetectron-maste...

  • python__matplotlib画直方图(hist)

    区分直方图与条形图: 条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的;直方图是用面积表示各...

  • matplotlib.pyplot.hist绘制直方图

    第一:导入包 第二:造数据 第三:参数解释 plt.hist(x,bins=None,range=None,den...

  • plt绘画直方图

    hist 可以绘画直方图

  • hist()直方图

    0 前言: 0.1与条形图的区别: 来自百度知道 条形统计图中,横轴上的数据是孤立的,是一个具体的数据.而直方图中...

网友评论

    本文标题:matplotlib可视化篇hist()--直方图

    本文链接:https://www.haomeiwen.com/subject/vptojqtx.html