Python绘制直方图

news/2025/1/11 19:57:43/

文章目录

    • 初步
    • 参数
    • 绘图类型
    • 多组数据直方图对比

初步

对于大量样本来说,如果想快速获知其分布特征,最方便的可视化方案就是直方图,即统计落入不同区间中的样本个数。

以正态分布为例

import numpy as np
import matplotlib.pyplot as pltxs = np.random.normal(0, 1, size=(5000))
fig = plt.figure()
for i,b in enumerate([10, 50, 100, 200],1):ax = fig.add_subplot(2,2,i)plt.hist(xs, bins=b)plt.show()

其中bins参数用于调控区间个数,出图结果如下

在这里插入图片描述

参数

直方图函数的定义如下

hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)

除了xbins之外,其他参数含义为

  • range 绘图区间,默认将样本所有范围纳入其中
  • densityTrue时,纵坐标单位是占比
  • weightsx个数相同,表示每个值所占权重
  • cumulativeTrue时,将采取累加模式
  • bottom y轴起点,有了这个,可以对直方图进行堆叠
  • histtype 绘图类型
  • align 对其方式,可选left, mid, right三种,代表左中右
  • oritentation 绘制方向,可选vertical和horizontal两种
  • rwitdth 数据条宽度
  • logTrue时,开启对数坐标
  • color, label 颜色,标签
  • stacked

绘图类型

histtype共有4个选项,分别是bar, barstacked, step以及stepfilled,其中barstacked表示堆叠,下面对另外三种参数进行演示

types = ['bar', 'step', 'stepfilled']
fig = plt.figure()
for i,t in enumerate(types,1):ax = fig.add_subplot(1,3,i)plt.hist(xs, bins=50, histtype=t, rwidth=0.5)plt.show()

效果如下

在这里插入图片描述
堆叠直方图,就是把多个直方图叠在一起

bins = [10, 30, 100]
ws = [1, 0.7, 0.5]for b,w in zip(bins, ws):print(b,w)plt.hist(xs, bins=b, density=True, histtype='barstacked', rwidth = w, alpha=w)plt.show()

效果如下

在这里插入图片描述

多组数据直方图对比

直方图中设置了rwidth选项,这意味着可以通过合理安排数据条宽度,以实现多组数据直方图在一个图像中更加

N = 10000
labels = ["norm", "power", "poisson"]
data = np.array([np.random.normal(0, 1, size=N)**2,np.random.power(5, size=N),np.random.uniform(0, 1, size=N)
]).Tplt.hist(data, 50, density=True, range=(0,1), label=labels)
plt.legend()
plt.show()

其中,data为3组统计数据,hist函数会自行规划画布,效果如下

在这里插入图片描述


http://www.ppmy.cn/news/819805.html

相关文章

ESPHOME_驱动OLED显示时间

文章目录 开发环境参考资料编写配置文件display 参数说明 编写时间组件全部配置代码 开发环境 主控:ESP12-F 屏幕:0.96寸OLED,I2C接口 ESPHOME版本:v2023.6.4 参考资料 SSD1306 OLED Display ESPHOME ssd1306_i2c驱动支持SSD130…

山洋伺服驱动器出现报错ALA1.0解决方法

山洋伺服驱动器出现报警代码ALA1.0的解决方法 1.山洋伺服驱动器出现报错ALA1.0,编码器相关环节报错 2.用山洋专用调试线将其跟电脑连接起来 3.使用山洋SANMOTION Motor Setup软件,点击自动分配COM,检索驱动器 4.连接检索到的驱动器 5.出现下…

J2EE集合框架Map

目录 一.Map特点 1.无序,键值对,键不能重复,值可以重复 2.键重复则覆盖,没有继承Collection接口 二.遍历方式 1.拿到key,再拿值2.拿到映射关系,键值都有 取出保存所有Entry的Set,再遍历此Set即可 三.HashMap与H…

apk软件网络验证一机一码自带后台管理系统

安卓端apk网络验证,自带后台管理系统,一键注入工具小纸片千纸鹤arm最新源码 Q:注入注册机后怎么管理弹窗数据内容 ? A:打开侧滑菜单,点击“注册机/弹窗管理”,打开指定软件进行配置。记得点保存…

朋友兰的故事

朋友兰的故事,早期活跃在呼市,他是一个非常勤奋的人,赚过很多钱,后来慢慢淡出了,急流勇退,享受生活去了。

德尔菲法

德尔菲法,是采用背对背的通信方式征询专家小组成员的预测意见,经过几轮征询,使专家小组的预测意见趋于集中,最后做出符合市场未来发挥在那趋势的预测结论。德尔菲法又名专家意见法,是依据系统的程序,采用匿…

水果兰

水果兰(学名:Teucrium Fruticans) 别名:灌从石蚕 原产地:原产于地中海地区及西班牙,唇形科木本植物,常绿灌木类。 生长环境:喜光耐旱,适应性强,生长迅速&…

Tableau 南丁格尔玫瑰图

简介:南丁格尔玫瑰图是弗罗伦斯南丁格尔所发明的。又名为极区图。是一种圆形的直方图。 应用场景:可以看到比饼图更加详细地信息。 参考书目:跟阿达学 Tableau 数据可视化 操作步骤: 以示例-超市为例 1、导出相关数据(处理数…