Numpy 在python上将径向距离与2D mgrid关联

Numpy 在python上将径向距离与2D mgrid关联,numpy,plot,grid,radial,Numpy,Plot,Grid,Radial,我有两个一维数组。一个包含温度,另一个包含径向距离(每个温度)。我想使用此信息生成热图类型的绘图。 以下是我遇到的问题: 1.如果我创建一个二维numpy栅格,如何将径向距离与每个栅格关联起来?假设径向距离为5个单位,如何找到距中心5个单位的所有网格正方形? 2.然后,我如何关联每个温度及其各自的网格点集。假设温度在径向距离5处为20度,我如何表示它在下面的一组x,y网格正方形处为20度 谢谢您的帮助。meshgrid是您的朋友。首先设置网格加上x和y坐标网格(您将有两个5乘5的阵列): 现在,

我有两个一维数组。一个包含温度,另一个包含径向距离(每个温度)。我想使用此信息生成热图类型的绘图。 以下是我遇到的问题: 1.如果我创建一个二维numpy栅格,如何将径向距离与每个栅格关联起来?假设径向距离为5个单位,如何找到距中心5个单位的所有网格正方形? 2.然后,我如何关联每个温度及其各自的网格点集。假设温度在径向距离5处为20度,我如何表示它在下面的一组x,y网格正方形处为20度


谢谢您的帮助。

meshgrid是您的朋友。首先设置网格加上
x
y
坐标网格(您将有两个5乘5的阵列):

现在,伪造一些数据:

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
单调递增):

就这样。下面是生成的热图:

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]])

嗨,我用我的实际数据试过了。我应该提到的是,我的实际数据具有更多条目的数组(接近2000条左右)。但无论如何。我使用plt.contourf(热图)绘图,它生成的图像只是一个蓝色正方形。我可能做错什么了吗?我唯一更改的是r和T,PROFILER/T只是代码r=PROFILER(1.3,4.3e13)T=PROFILET(1.3,4.3e13)plt.tourf(heatmap,100)plt.show()中早期的函数。加布里埃尔:你尝试过“假”数据并得到了与我相同的结果吗?我假设你将
r
值从低到高排序,因此如果它们是随机的,你必须做一些更复杂的事情,比如对两个数组进行排序。是的,我尝试了伪数据,得到了与你相同的结果。对于我的真实数据,幸运的是r是按升序排列的,所以这不是问题。当我在数组中放置1890个元素的长度与示例代码中使用的4个元素的长度的数组时,我会得到一个输出热图,所有的零都在中间,奇怪的是,这里的值是15。另外,当我编写代码时,我必须排除最后一行中的单词“where”。好的,
热图的大小是否与径向距离的范围相匹配?例如,如果您的径向距离达到1000(某个单位),但希望热图为256乘256(此处仅猜测数字),则您可能需要缩放
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]])