【发布时间】:2021-12-18 15:55:56
【问题描述】:
我正在尝试根据网格数据制作标准偏差 (stdv) 的热图,即我已将数据划分为像网格一样的单元格,我想从每个单元格中获取 stdv 并绘制其值单元格,颜色编码为热图。下面是我用来将 x -y 平面划分为 4 个相等的 bin 或单元格的代码,然后让 v 值落入这 4 个 bin 中。我在每个 bin 中将它们和它们各自的 stdv 打印出来。
import numpy as np
import matplotlib.pyplot as plt
x = np.array([-10,-2,4,12,3,6,8,14,3])
y = np.array([5,5,-6,8,-20,10,2,2,8])
v = np.array([4,-6,-10,40,22,-14,20,8,-10])
xi = x // 20+1
yi = y // 20+1
k=2
cells = [[[] for yi in range(k)] for xi in range(k)]
for ycell in range(k):
for xcell in range(k):
cells[ycell][xcell] = v[(yi == xcell) & (xi == ycell)]
for ycell in range(k):
for xcell in range(k):
this = cells[ycell][xcell]
print(ycell, xcell, len(this), this, sep='\t')
print('direct std dev is', np.std(this))
我现在想在 x-y 平面上绘制它,这 4 个 bin 中的每一个都将 stdv 值表示为强度,并显示为如下图所示的热图:
有人可以帮我弄清楚如何创建这种热图吗?谢谢!
【问题讨论】:
标签: python numpy statistics heatmap binning