问题标签 [histogram2d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63 浏览

python - 将过滤器应用于 plt.imshow 时出现轴缩放问题

我正在尝试将高斯滤波器应用于 2 直方图,但是当我使用输入数据时 y 比例不合适。

如果我运行一个示例数据集,它工作正常。这是一个使用随机数据的例子。

输出:在此处输入图像描述

但是,当我尝试从输入数据生成相同的图时,它不起作用。见下文。

在此处输入图像描述

0 投票
1 回答
1497 浏览

python - 使用 healpy 使用 HEALPix 像素化制作 2D 直方图

数据是天空中物体的坐标,例如:

我想做一个 2D 直方图,以便(l, b)在 Mollweide 投影上使用 HEALPix 像素化绘制带有天空坐标的某个点的密度图。我怎样才能使用 healpy 做到这一点?

教程:

http://healpy.readthedocs.io/en/v1.9.0/tutorial.html

说如何绘制一维数组或拟合文件,但我不知道如何使用这种像素化来绘制二维直方图。

我也找到了这个功能,但它不起作用,所以我被卡住了。

我可以通过这种方式在 Mollweide 投影中绘制这些点:

非常感谢您的帮助。

0 投票
1 回答
1479 浏览

bokeh - 散景的 histogram2d 示例

令人惊讶的是,没有人愿意在散景库中为 2D 直方图绘制示例

histogram2dofnumpy给出了原材料,但如果有一个例子就好了matplotlib

有什么简单的方法来制作一个吗?

跟进一个提议的答案,让我附上一个案例,其中 hexbin 不适合这项工作,因为 exagon 不适合这项工作。另请查看 matplotlib 结果。

当然,我并不是说散景不能做到这一点,但它似乎并不直截了当。将 hexbin 图更改为方形 bin 图就足够了,但quad(left, right, top, bottom, **kwargs)似乎没有这样做,也没有hexbin选择更改“平铺”形状的选项。

六边形 在此处输入图像描述

0 投票
1 回答
2314 浏览

python - 如何平滑或重叠 pyplot.hist2d 中的 bin?

我正在绘制一个 2D 直方图来显示,例如,闪电的集中度(由它们在经度和纬度中记录的位置给出)。数据点的数量不是太大(53),结果太粗略。这是结果的图片:

出于这个原因,我试图找到一种方法来加权来自周围垃圾箱的数据。例如,在经度 = 130 和纬度 = 34.395 处有一个 bin 记录了 0 个闪电,但它周围有几个。我希望这个垃圾箱能以某种方式反映它周围的浓度。换句话说,我想通过重叠的 bin 来平滑数据(这样一个数据点可以被不同的连续 bin 计算多次)。

我知道 hist2d 具有“权重”的输入选项,但这只会使数据点在其 bin 中更加“重要”。

简化的代码如下,我可以澄清任何需要的东西。

0 投票
0 回答
1078 浏览

python - Python + 将百分位数的等高线添加到 2D 直方图

我有一个代码(见下文)来绘制密度散点图(2D 直方图)。

我现在想添加代表数据数量的 7 个选定百分位数(5%、10%、25%、50%、75%、90%、95%)的等高线。

我已经在谷歌上搜索解决方案太久了,但没有找到任何真正适用于我的问题的解决方案。那么请问,我该怎么做呢?

0 投票
0 回答
165 浏览

f# - F# 数组到二维直方图

我正在使用带有 F# 的 OxyPlot。我有创建单个参数直方图并绘制它的代码。我的轮廓形式的双参数直方图代码太耗时了。我想要一种将两个向量或数组映射到二维直方图的有效方法。我包括我的常规直方图代码。

所以,我正在寻找 dataArray.[a…a, ], dataArray[b…b, ] 并将它们放入特定分辨率的 bin 中以创建直方图 [x,y]。OxyPlot 需要直方图才能创建轮廓。

想象一下两个数据数组,一个称为 Alexa647-H,另一个称为 BV786-H。每个数组包含 100,000 个介于 0 和 10,000 之间的整数。您可以在 OxyPlot 中将这些数组绘制为点图。这很简单,只需为 X 轴绘制一个数组,为 Y 轴绘制一个数组。我在下面包含了一个情节。

我的问题涉及使用相同的数据创建等高线图。为此,我需要首先确定一个分辨率,例如为方便起见 100x100。因此,我想得到一个二维数组调用 hist2(100,100)。该数组基本上是 10,000 个大小为 1000x1000 的 bin。每个 bin 包含属于特定范围的元素的计数 - 一个 2D 直方图。

点和轮廓

OxyPlot 中的编码示例以数学方式生成峰阵列。我想生成轮廓输入峰值数组作为上面的轮廓,而不是。

由 OxyPlot 代码生成的图

我希望这能解决问题。

大学教师

0 投票
3 回答
5718 浏览

python - seaborn 联合图颜色(按密度)

我正在为具有数百万个数据点的一些数据制作二维直方图。matplotlib.hist2d(x,y,bins,norm=LogNorm())效果很好并在大约 5 秒内生成一个图,但我喜欢seaborn.jointplot(). 如何使用附图seaborn.jointplot()中的点的对数密度为点着色matplotlib.hist2d()?使用 KDE 花费的时间太长(大约一分钟左右我就放弃了),而且我有很多图形要创建。所以“获得”颜色的时间是一个因素。或者,如何将边际直方图添加到matplotlib.hist2d()

plt.hist2d(x,y,100,norm=LogNorm(),cmap='jet')

在此处输入图像描述

sns.jointplot(x=x, y=y)

在此处输入图像描述

0 投票
1 回答
335 浏览

python - 如何创建离散的二维直方图

我正在尝试绘制一个 2d 直方图,显示两次测量之间收到的错误代码之间的相关性。错误代码值范围从 -3 到 5。我希望直方图为每个错误代码显示一个条形图。在由一次测量收到的两个错误代码标记的字段中,条形应该增加(改变颜色)。我在这里画了一个简短的草图。在此处输入图像描述

到目前为止,我只有下面的代码,不幸的是它没有给我想要的情节。有人知道如何得到我上面描述的情节吗?

0 投票
0 回答
180 浏览

python - 来自 matplotlib.pyplot.hist2d 的奇怪“计数”矩阵

我想从 2dhist 函数中获取 2d numpy 数组。获得计数后,我想在 pyplot.imshow() 函数中绘制数据以进一步添加一些信息。允许出现在我的列表中的整数介于 0 和 11 之间(因此有 12 个 bin)。

但是,我得到一个奇怪的矩阵。

如果我们仔细查看数据列表,我们会看到例如整数 0 从未出现。因此,如何才能成为第一列中的条目?

我非常感谢你的内心。谢谢你。

0 投票
2 回答
1730 浏览

python - 如何进行 matshow 或 imshow,但将轴值显示为 bin 边界(即,就像在 2d 频率/密度图上一样)

我需要做一个二维密度样图。但是我自己计算“密度”。所以基本上我有一个NxM值数组,我只能用plt.matshow(或 imshow)绘制。

但是,在这种情况下,轴值是图中的像素,而我真的希望它显示一些用户定义的值。所以我手动更改上面的刻度标签。

这仍然留下一个问题。matshow仍然认为刻度标签正在标记图像中的“像素”,因此刻度标签打印在每个像素正方形的“中间”。然而,就像我说的那样,我真正想要绘制的更像是一个密度图,所以每个“像素正方形”代表 x,y 空间中的一个 bin。将刻度标签打印在方形边缘上会更有意义,就像它为直方图和频率图所做的一般方式一样。

我应该继续为此使用 matshow 还是有其他功能可以做到这一点?例如,我可以使用plt.hist2d但手动设置“高度”而不输入数据作为一堆样本吗?否则,我如何plt.matshow按照我想要的方式放置刻度标签?