我有两个一维数组。一个包含温度和另一个径向距离(对于每个相应的温度)。我想使用此信息生成热图类型图。这是我遇到问题的地方: 1. 如果我创建一个 2d numpy 网格,我如何将径向距离与每个网格关联起来?说径向距离是 5 个单位,我如何找到距离中心 5 个单位的所有网格正方形?2.然后我如何将每个温度与它各自的一组网格点相关联。所以说在径向距离 5 处温度为 20 度,我如何表达这一点,因为它在以下一组 x,y 网格正方形处为 20 度?
感谢您的任何帮助。
meshgrid
是你的朋友吗?首先设置网格加x
和y
坐标网格(您将有两个 5 x 5 数组):
import numpy as np
x, y = np.meshgrid(np.arange(-2, 3), np.arange(-2, 3))
heatmap = 0 * x # easy way to get shape right
现在,伪造一些数据:
r = np.array((0, 0.5, 1.5, 2.5)) # Your radial distance
T = np.array((100, 90, 70, 40)) # Your temperature at distance
从内向外叠加数据,从中间开始(假设r
是单调递增的):
r2 = r**2
xy2 = x**2 + y**2
for ii in range(r.size):
heatmap[np.where(xy2 >= r2[ii])] = T[ii]
而已。这是生成的热图:
array([[ 40, 70, 70, 70, 40],
[ 70, 90, 90, 90, 70],
[ 70, 90, 100, 90, 70],
[ 70, 90, 90, 90, 70],
[ 40, 70, 70, 70, 40]])