将径向距离与python上的2D mgrid相关联

时间:2015-04-21 22:13:18

标签: numpy plot grid radial

我有两个1D阵列。一个包含温度和另一个径向距离(对于每个相应的温度)。我想使用这些信息生成热图类型图。 这是我遇到问题的地方: 1.如果我创建一个2d numpy网格,我如何关联每个网格的径向距离?假设径向距离为5个单位,如何找到距离中心5个单位的所有网格方块? 2.然后,我如何将每个温度与其各自的网格点相关联。所以说温带在径向距离5处是20度,我如何表达它,因为它在下面的x,y网格方块是20度?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

meshgrid是你的朋友。首先设置网格加xy坐标网格(你将有两个5乘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]])