社区首页 >问答首页 >大熊猫多重重叠直方图的绘制

大熊猫多重重叠直方图的绘制
EN

Stack Overflow用户
提问于 2019-03-28 03:24:57
回答 2查看 6.4K关注 0票数 4

我有两个不同的数据格式,每个变量都有19个变量,我正在用每个变量的直方图绘制一个多个图,如下所示:

代码语言:javascript
代码运行次数:0
复制
fig, ax = plt.subplots(figsize=(19,10), dpi=50)
dataframe1.hist(ax=ax, layout=(3,7), alpha=0.5)

fig, ax = plt.subplots(figsize=(19,10), dpi=50)
dataframe2.hist(ax=ax, layout=(3,7), alpha=0.5)

这会产生两幅图像,里面有19个直方图。我想尝试的是,在同一子图中只绘制一幅具有共享直方图的图像。

我试过这个:

代码语言:javascript
代码运行次数:0
复制
fig, ax = plt.subplots(figsize=(19,10), dpi=50)
dataframe1.hist(ax=ax, layout=(3,7), alpha=0.5, label='x')
dataframe2.hist(ax=ax, layout=(3,7), alpha=0.5, label='y', color='red')

但这是最后一幅画。这是一个类似的例子:Plot two histograms at the same time with matplotlib,但我如何应用它,我的19个子图呢?

任何想法都会受到欢迎,谢谢!

P.S:我现在使用的是木星笔记本和%matplotlib笔记本选项

EN

回答 2

Stack Overflow用户

发布于 2019-03-28 04:16:00

您的问题是在实际需要21 (3x7)时,在Axes调用中只创建一个plt.subplots对象。由于所提供的子地块数量与所要求的子地块数量不匹配,熊猫会创建新的子地块。因为这种情况发生了两次,所以只能看到第二组直方图。

你可以完全不给subplots打电话,让熊猫来做所有的工作。对hist的调用返回所需的所有子图,然后可以在对hist的第二次调用中使用它。

编辑

我意识到,如果所需地块的数量实际上并不等于网格单元格的数量(在本例中为3x9=21),则必须准确地传递实际要在其上绘制的子图的数量(在本例中为19)。但是,对df.hist的调用返回每个网格单元(即21)的子图,并显然隐藏未使用的单元格。因此,您只需要将所有返回子图的一个子集传递给对hist的第二个调用。这是最简单的方法,方法是将2d子图数组转换为一维数组,然后切片这个数组,例如使用`axes.ravel():19。

代码语言:javascript
代码运行次数:0
复制
import numpy as np
from matplotlib import pyplot as plt
import pandas as pd

length=19

loc = np.random.randint(0,50,size=length)
scale = np.random.rand(length)*10
dist = np.random.normal(loc=loc, scale=scale, size=(100,length))
df1 = pd.DataFrame(data=list(dist))


axes = df1.hist(layout=(3,7), alpha=0.5, label='x')

loc = np.random.randint(0,50,size=length)
scale = np.random.rand(length)*10
dist = np.random.normal(loc=loc, scale=scale, size=(100,length))
df2 = pd.DataFrame(data=list(dist))

df2.hist(ax=axes.ravel()[:length], layout=(3,7), alpha=0.5, label='x',color='r')

plt.show()

这样产生的输出如下:

票数 9
EN

Stack Overflow用户

发布于 2019-03-28 06:36:42

调用subplots时,可以指定所需的行数和列数。在您的例子中,您需要3行7列。然而,.plot会对有21个轴,但只有19个从你的数据文件绘制。因此,我们将轴压平成一个列表并转换为一个列表,这将允许我们通过.pop()同时从图形和轴集中删除最后两个轴。

代码语言:javascript
代码运行次数:0
复制
fig, axes = plt.subplots(figsize=(19,10), dpi=50, nrows=3, ncols=7)
flat_axes = list(axes.reshape(-1))
fig.delaxes(flat_axes.pop(-1))
fig.delaxes(flat_axes.pop(-1))

dataframe1.hist(ax=flat_axes, alpha=0.5, label='x')
dataframe2.hist(ax=flat_axes, alpha=0.5, label='x',color='r')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55396416

复制
相关文章
LeetCode 第一页题目
最近用一些碎片时间刷了LeetCode第一页的题目(https://leetcode.com),除了一些面试中曝光率较高的题目外,有几个题目挺有意思的,恰逢考试季挑出来给大家思考一下。
曲奇泡芙
2019/08/16
5450
LeetCode 第一页题目
PS绘制水晶球
前言:学生们在学习ps软件的过程中非常的认真与努力,所以对于软件的使用可以说已经很熟练了,可是为什么当我们给学生安排一些原创设计需求的时候,学生却有种无从下手的感觉呢,究其原因就是学生在创新制作这方面
用户1730674
2018/05/02
9570
PS绘制水晶球
学会自己制作网线水晶头,水晶头(RJ45)接法
现在是一个电脑普及的时代,但是当自己电脑的网线坏掉的时候,你是不是也想自己学如何制作网线水晶头呢?
zeruns
2020/04/15
6.5K0
学会自己制作网线水晶头,水晶头(RJ45)接法
水晶报表常用公式
A.计量单位转换 这是一个非常简单的例子,主要是为了演示在公式中进行不同变量类型的转换和计算。 有时数据库字段的单位和报表中显示的单位不同,我们需要进行计量单位之间的转换,这时就离不开公式的使用。比如,我们的数据库中有一个Length字段,它记录以米为单位的长度,而在打印时需要以厘米为单位,我们就可以使用下面的函数。 ToText({Order Details.Length} *100) + "厘米" 这里的ToText函数就是转换数字型为字符型。常用的转换函数还有ToNumber等。
斯文的程序
2019/11/07
3.1K0
给网线接水晶头
首先,我们要准备好工具和材料,测线器、网线钳,网线、水晶头、剥线器。如果找不到或者没有剥线器,可以选择用网线钳代替剥线器。
伪君子
2018/09/14
1.2K0
给网线接水晶头
水晶报表的推模式
在一个多层结构中,水晶报表的使用往往比较繁琐:     1、在项目中添加数据集,形成xsd文件     2、利用xsd文件,在水晶报表环境中生成报表     3、回到.net,添加rpt文件 这样做的坏处除了繁琐,就是在UI层直接要访问数据库,将使得层次结构晚节难保。其实利用水晶报表的推模式,将很灵活的实现报表。思路是:事先建立报表的架子,运行时为报表指定数据。具体实现:     1、在水晶报表环境中,建立新数据连结,怎么方便怎么来,建议用oledb,快。     2、然后创建报表     3、回到.net
用户1075292
2018/01/23
9900
只显示指定网卡IP地址命令
export eth=1&&netstat -ie|awk -F'[: ]' 'begin{found=0;} { if (match($0,"eth'"$eth"'")) found=1; else if ((1==found) && match($0,"eth")) found=0; if ((1==found) && match($0,"inet addr:") && match($0,"Bcast:")) print $13; }'
一见
2018/08/07
2.9K0
迅雷红水晶自动收宝箱工具
迅雷于2014年4月启动了“闲置带宽可以赚钱”这一概念,允许用户利用闲置的上传带宽换取收益。该项目经过多次内测调整,与2015年1月4日由原来的蓝水晶更名为红水晶。虽然上传流量换收益的运营模式并未改变,但规则发生了巨大的变化。
reizhi
2022/09/26
3550
迅雷红水晶自动收宝箱工具
让typecho的首页只显示摘要
修改typecho首页显示文章的数量 到后台外观,打开function.php,在末尾添加: / 定义首页文章分布数量 /
李维亮
2021/07/09
5770
Xcelsius(水晶易表)系列——入门篇!
今天是新专题的第一篇——Xcelsius(水晶易表)入门篇! 今天跟大家简单介绍下Xcelsius(水晶易表)这款动态交互式可视化产品。 它是SAP公司首屈一指的可视化利器,拥有豪华的风格与外观,充满
数据小磨坊
2018/04/11
3.9K1
Xcelsius(水晶易表)系列——入门篇!
关于水晶易表的简介及其安装初识
水晶易表是全球领先的商务智能软件商SAP Business Objects的最新产品,通常我们只需要简单的进行点击和拖拽操作,Crystal Xcelsius就可以令您静态的Excel电子表格充满生动的数据展示、动态表格、图像和可交互的可视化分析。
Python进阶者
2018/12/17
8280
关于水晶易表的简介及其安装初识
CESIUM 点只显示一半
使用disableDepthTestDistance: Number.POSITIVE_INFINITY, 圆点完全都在地上了
吟风者
2021/11/24
1.2K0
CESIUM 点只显示一半
Xcelsius(水晶易表)系列2——单值部件
今天专门跟大家分享水晶易表中的一大类部件——单值部件。 单值部件使用频率很高,从它的名称就能猜个大概,它是用来表达单个指标的图表部件。 水晶易表中的单值部件大体上分为两类:输入型单值部件和输出型单值部件。 输入型的单值部件主要包含:滑块、进度条、刻度盘等,而输出型单值部件最典型的就是量表。 输入型的单值部件可以引用并识别excel中带公式的单元格,这样鼠标点击既可以实现动态控制。 量表的最大特色就是呈现简单易懂的指标数据效果,并且添加预警功能(警报)。 首先来看我们今天使用到的数据文件,是一家银行业的收
数据小磨坊
2018/04/11
1.5K0
Xcelsius(水晶易表)系列2——单值部件
解决Echarts的toolbox只显示英文的问题
我们为toolbox中每一个配置项都添加title属性,title属性的值就是你想显示的值,随便写。toolbox的配置代码如下:
别团等shy哥发育
2023/02/25
1K0
解决Echarts的toolbox只显示英文的问题
<input type=”file” />浏览时只显示指定文件类型
1.accept=”application/msexcel” 2.accept=”application/msword” 3.accept=”application/pdf” 4.accept=”application/poscript” 5.accept=”application/rtf” 6.accept=”application/x-zip-compressed” 7.accept=”audio/basic” 8.accept=”audio/x-aiff” 9.accept=”audio/x-mpeg” 10.accept=”audio/x-pn/realaudio” 11.accept=”audio/x-waw” 12.accept=”image/gif” 13.accept=”image/jpeg” 14.accept=”image/tiff” 15.accept=”image/x-ms-bmp” 16.accept=”image/x-photo-cd” 17.accept=”image/x-png” 18.accept=”image/x-portablebitmap” 19.accept=”image/x-portable-greymap” 20.accept=”image/x-portable-pixmap” 21.accept=”image/x-rgb” 22.accept=”text/html” 23.accept=”text/plain” 24.accept=”video/quicktime” 25.accept=”video/x-mpeg2″ 26.accept=”video/x-msvideo”
全栈程序员站长
2022/09/13
6930
<input type=”file” />浏览时只显示指定文件类型
Python提取PDF第一页为封面图片【批量提取】
近期要处理一批PDF文件,大约在20G,具体数量不详,需求是把每个文件的页数和第一页转换成图片,在网上查阅各种类库,最终选择的是PyMuPDF模块。最后核心代码量较少,功能实现效果也比较好。
申霖
2020/02/17
3.3K0
echarts3 地图只显示南沙群岛
产生上述现象后,刷新一下页面看看地图是否显示正常,如果正常请参考我的另一篇文章:http://blog.csdn.net/john1337/article/details/54947787
johnhuster的分享
2022/03/28
8090
FZU 2092 收集水晶(记忆化搜索)
Problem 2092 收集水晶 Accept: 101 Submit: 439 Time Limit: 5000 mSec Memory Limit : 32768 KB Problem Description shadow来到一片神奇的土地,这片土地上不时会出现一些有价值的水晶,shadow想要收集一些水晶带回去,但是这项任务太繁杂了,于是shadow让自己的影子脱离自己并成为一个助手来帮助自己收集这些水晶。 shadow把这片土地划分成n*m个小方格,某些格子会存在一些shado
ShenduCC
2018/04/26
5180
水印只显示一半?帮你还原直播水印
大家在刷抖音或者B站视频时,视频都带有抖音和B站的标示。在腾讯视频、芒果TV等视频网站里观看视频时同样可以找到他们独特的标示。最近有客户在做直播之前,自定义了水印模版,也想将具有代表性的图示展现在视频的右上角。结果直播过程中发现水印被截断只显示了一半。客户坚持模版设置没有问题,是水印自己飘移了,还是视频飘移了?
clairehou
2020/11/16
2.9K0
水印只显示一半?帮你还原直播水印
IOS – OpenGL ES 图像水晶球效果 GPUImageGlassSphereFilter
GPUImageGlassSphereFilter 属于 GPUImage 图像视觉效果相关,用来处理图像水晶球效果。shader 源码如下:
猿说编程[Python和C]
2023/04/01
4320

相似问题

水晶报告xi只显示组标题。

15

水晶报告只显示本地条形码。

14

水晶报告只显示最后一列。

16

水晶报告只显示最后一列

14

如何只打印水晶报告的第一页?

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文