python绘制二维直方图

news2024/12/25 0:18:49

文章目录

    • hist+scatter
    • hist2d

hist+scatter

如果想描述二维数据的分布特征,那么一个直方图显然是不够用的,为此可使用两个直方图分别代表xy方向上的分布情况,同时透过散点图查看其整体的分布特征。

下面创建一组二元高斯分布的数据,用于直方图测试。多元高斯分布的主要参数仍为期望和方差,但所谓多元分布,在坐标层面的表现就是坐标轴的个数,也就是向量维度。所以N个元素对应N维向量,也就有N个期望;而方差则进化为了协方差矩阵

import numpy as np
import matplotlib.pyplot as plt

mean = [0, 0]
cov = [[0, 1], [10, 0]]
x, y = np.random.multivariate_normal(mean, cov, 5000).T

其中,x,y就是待统计的数据。

fig = plt.figure()
gs = fig.add_gridspec(2, 2,  
    width_ratios=(4, 1),  
    height_ratios=(1, 4))

ax = fig.add_subplot(gs[1, 0])
ax.scatter(x, y, marker='x')        # 散点图绘制

xHist = fig.add_subplot(gs[0, 0], sharex=ax)
xHist.tick_params(axis="x", labelbottom=False)

yHist = fig.add_subplot(gs[1, 1], sharey=ax)
yHist.tick_params(axis="y", labelleft=False)

binwidth = 0.25
lim = (int(np.max(np.abs([x,y]))/0.25) + 1) * 0.25
bins = np.arange(-lim, lim + binwidth, binwidth)
xHist.hist(x, bins=bins)
yHist.hist(y, bins=bins, orientation='horizontal')

plt.show()

其中,tick_params用于取消直方图左侧和下面的坐标刻度,效果如下

在这里插入图片描述

hist2d

相比之下,hist2d可以更加便捷地绘制直方图,并以图像的形式反馈回来

plt.hist2d(x,y,bins=40)
plt.show()

其中,x,y即x和y轴分别要统计的样本值,bins和hist中的参数相同,表示数据条个数,只不过对应到图像中,数据条变成了数据块,效果如图所示

在这里插入图片描述

当然,也可以把hist+scatter图中的散点图代之以hist2d

fig = plt.figure()
gs = fig.add_gridspec(2, 2,  
    width_ratios=(4, 1),  
    height_ratios=(1, 4))

ax = fig.add_subplot(gs[1, 0])
ax.hist2d(x, y, bins=40)        # 散点图绘制

xHist = fig.add_subplot(gs[0, 0], sharex=ax)
xHist.tick_params(axis="x", labelbottom=False)

yHist = fig.add_subplot(gs[1, 1], sharey=ax)
yHist.tick_params(axis="y", labelleft=False)

binwidth = 0.25
lim = (int(np.max(np.abs([x,y]))/0.25) + 1) * 0.25
bins = np.arange(-lim, lim + binwidth, binwidth)
xHist.hist(x, bins=bins)
yHist.hist(y, bins=bins, orientation='horizontal')

plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nature揭秘:足量提供这个营养素可激活免疫细胞对抗肿瘤

圣犹太儿童研究医院(St. Jude Childrens Research Hospital)的科学家们发现,免疫细胞和肿瘤细胞在它们的局部环境中争会夺谷氨酰胺。谷氨酰胺是一种营养物质,对抗癌活性具有重要意义。如果癌细胞垄断谷氨酰胺,则可以阻…

2023年7月广州/东莞/深圳传统行业产品经理NPDP认证招生

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

单例模式:懒汉式和饿汉式

目录 懒汉模式和饿汉模式 区别 示例 懒汉模式线程不安全 懒汉模式线程安全 懒汉模式内部静态变量线程安全 饿汉式线程安全 指的是在系统生命周期内,只产生一个实例。 懒汉模式和饿汉模式 分为懒汉式和饿汉式 区别 创建时机和线程安全 线程安全&#xff1…

密码学入门——单向散列函数

文章目录 参考书一、简介二、术语介绍三、散列函数的应用四、单向散列函数的具体例子 参考书 图解密码技术,第三版 一、简介 单向散列函数(One-way Hash Function)是一种将任意长度的输入数据映射为固定长度输出的函数。该函数通常被用于密…

asyncio.run() cannot be called from a running event loop

这个问题一般在jupyter中出现 搜到的解决方法也不怎么好用 知道看到了这个评论 很感谢 # pip install nest_asyncio首先安装此模块 import nest_asyncio#调用 nest_asyncio.apply()成功解决

如何整合spring cloud常用组件?

目录 一、SpringCloud Alibaba 简介 1、简介 2、为什么使用 3、版本选择 4、项目中的依赖 二、SpringCloud Alibaba-Nacos[作为注册中心] 1、下载 nacos-server 2、启动 nacos-server 3、将微服务注册到 nacos 中 三、SpringCloud Alibaba-Nacos[作为配置中心] 四、…

天猫精灵狄耐克联合研发新品, 携手打造智慧居家新体验

2023年6月28日,以“以Ai相伴,智慧赋能”为主题的2023厦门人工智能产业高峰论坛,在素有“中国软件特色名城”美誉的厦门隆重举行。 2023厦门人工智能产业高峰论坛现场 厦门狄耐克智能科技股份有限公司与阿里巴巴智能互联成为战略合作伙伴&…

智能抄表建设方案

城市基础设施改造是智慧城市升级建设的基础。如供水,水资源是人类生存发展和经济社会可持续发展的重要基础。然而,传统的人工抄表方式已经无法满足水资源管理和水务公司对高效、准确抄表管理的需求。由于人工抄表工作的不便捷性、耗时长和易出错性&#…

全方位对比 Postgres 和 MySQL (2023 版)

根据 2023 年 Stack Overflow 调研,Postgres 已经取代 MySQL 成为最受敬仰和渴望的数据库。 随着 Postgres 的发展势头愈发强劲,在 Postgres 和 MySQL 之间做选择变得更难了。 如果看安装数量,MySQL 可能仍是全球最大的开源数据库。 Postgre…

Jmeter接口关联(四)【使用正则表达式提取值】关联上下接口实际当中的运用

文章目录 前言一、Jmeter中正则表达式的运用(使用案例讲解)注意 前言 这篇主要是用一个实际的例子讲解正则表达式在2个有关联的接口中运用。 天气预报接口: 请求Key:79a35e2a5997710f3bdc86de81f21dbb 根据城市查询天气 接口地…

【missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun】

报错信息 安装xcode xcode-select --install 打开跳板效率会更高。

【Matlab】智能优化算法_人工蜂鸟算法AHA

【Matlab】智能优化算法_人工蜂鸟算法AHA 1.背景介绍2.数学模型2.1 初始化2.2 指导觅食2.3 领地觅食2.4 迁徙觅食 3.文件结构4.伪代码5.详细代码及注释5.1 AHA.m5.2 BenFunctions.m5.3 FunRange.m5.4 main.m5.5 SpaceBound.m 6.运行结果7.参考文献 1.背景介绍 蜂鸟是一种令人惊…

Java实现站内信

假如后台某个任务比较耗时,这时就需要任务完成时,通知一下用户,如下图,实现站内信的效果 两张表即可实现 t_message_content内容表 CREATE TABLE t_message_content (c_id int(11) NOT NULL AUTO_INCREMENT COMMENT 消息的id,se…

SpringCloud(4) Eureka 如何主动下线服务节点

目录 1.直接停掉客户端服务2.发送HTTP请求1)调用DELETE接口2)调用状态变更接口 3.客户端主动通知注册中心下线1)代码示例2)补充3)测试 一共有三种从 Eureka 注册中心剔除服务的方式: 1.直接停掉客户端服务…

多个input相加计算结果为NaN的处理

为什么会出现NaN?(复现一下) NaN的出现:是因为input框绑定的都是同一个方法导致的。 因为我的需求:购买数量*优惠价(单价)-平台补贴-店铺补贴实付金额 的实时计算 原因:第一个input输入的时候,相应的其…

货币政策和汇率波动——使用Python进行量化分析

货币政策和汇率波动是国际贸易和投资中的重要问题,对于投资者来说具有重要的影响。本文将介绍如何使用Python进行量化分析,以揭示货币政策和汇率波动之间的关系。 一、货币政策与汇率波动 货币政策作为国家宏观调控的一种手段,对汇率波动具…

选读SQL经典实例笔记06_日期处理(上)

1. 计算一年有多少天 1.1. 方案 1.1.1. 找到当前年份的第一天 1.1.2. 加上1年以得到下一年的第一天 1.1.3. 得到的结果减去第一步得到的结果 1.2. DB2 1.2.1. sql select days((curr_year 1 year)) - days(curr_year)from (select (current_date -dayofyear(current_d…

数字电路设计——流水线处理器

数字电路设计——流水线处理器 从内存或是寄存器组读写、操作ALU是处理器中最耗时的操作。我们将一个指令拆成五个流水线阶段,每个阶段同时执行耗时的组合逻辑。这五个阶段分别是取指令、解码、执行、访存和写回。 在取指令阶段,处理器从指令存储器中读…

python -m 是什么命令

python -m 命令是什么意思 首先python --help 可以看到-m的含义:意思是将库中的python模块用作脚本去运行。 python --help 命令显示结果 python -m xxx.py 和python xxx.py 有什么区别 这是两种加载py文件的方式: 叫做直接运行(python xxx.py&#xf…

Android 音频可视化:频谱特效的探索与实践

音频可视化,一言以蔽之,就是声音到图像的转换。 随着视觉工业时代的到来,用户逐渐重视产品的极致体验,在市场上诸多优秀的音乐类APP中,频谱动效 是一个经典的应用场景: 图片来源:咪咕音乐 本文…