用MatPlotLib生成彩色权重图?

2024-10-01 13:26:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张地图,我想在上面覆盖一张颜色权重图。权重映射有m x n1m x 1m框。我有很多观点,每一点都有分量。长方体的权重是通过将落在该长方体中的所有点的权重相加来计算的。在

现在,根据它们的重量,每个盒子都会根据重量填充一定的颜色。在

期望的结果类似于the one shown here,但是

  1. 在我的情况下,地图和权重地图必须叠加得很好。在
  2. 应该使用已计算的权重来指定颜色,而不是频率。在

我该怎么做?在


Tags: thehere颜色地图情况one频率盒子
1条回答
网友
1楼 · 发布于 2024-10-01 13:26:44

如果我理解正确的话:你有一组点,每个点都有一个x坐标,一个y坐标和一个与之相关的权重。在

你所链接的问题的答案已经非常准确地描述了你想做什么。唯一的区别是可以使用weights=参数来获取每个bin中的加权计数。在

例如,您可以使用

wcounts, xedges, yedges = np.histogram2d(x, y, weights=w)

得到你的加权直方图,然后

^{pr2}$

来显示它。在

我不知道您将其覆盖在“map”上是什么意思,但是您可以使用alpha=参数来imshow()使图像半透明(或者您可以在图像顶部绘制“map”)。在

同样,你也可以

hexbin(x, y, C=w, alpha=0.5)

要绘制加权六边形binning图,在本例中使用C=参数指定权重,并再次使用alpha=来控制绘图的透明度。在

编辑

好的,你想计算一个指定的箱子位置网格上的直方图。假设你的x坐标在0米到100米之间,你的y坐标在0米到75米之间,你希望每个箱子都是1米乘1米。你可以把一个数组元组传递给np.histogram2d()

# remember that for n bins there are n+1 bin edges
x_edges = np.linspace(0, 100, 101)
y_edges = np.linspace(0, 75, 76)

wcounts = np.histogram2d(x, y, weights=w, bins=(x_edges, y_edges))[0]

现在,wcounts是一个(100, 75)数组,每个元素代表1m×1m的bin中的加权计数。在

相关问题 更多 >