在极地热图中绘制 3 个半径上的一维数组

Plot a 1D array on 3 radii in a polar heat map

我有一个 3 个一维数组:半径、角度和温度。它们一起形成一个环的二维温度图。 数组采用以下形式:

r = [0,0,0,1,1,1,2,2,2]
th = [0.,0.78539816,1.57079633,2.35619449,3.14159265,3.92699082,4.71238898,5.49778714,6.28318531]
z = [-1,2,5,2,4,-1,3,2,3]

我不明白如何使那些 z 数据落在正确的坐标上。

我可以用随机数让它工作,使用下面的简单代码:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

fig = plt.figure()
ax = Axes3D(fig)

rad = np.linspace(.2, 1, 4)
azm = np.linspace(0, 2 * np.pi, 9)
r, th = np.meshgrid(rad, azm)
z = np.random.rand(9,4) ** th * r
ax0 = plt.subplot(projection="polar")
im = plt.pcolormesh(th, r, z, cmap='bwr')
plt.plot(azm, r, color='k', ls='none')
plt.axis('off')
cbar = fig.colorbar(im)
ax0.set_title('3 radii polar heat map')

This is how my example code comes out

我结束了将列表 z 分成 3 个列表,并使用 z_mat = np.array([z1,z2,z3]) 将它们制成矩阵。我注意 radazm 的列表包含的项目多于 z,这是 pcolormesh 的要求。之后,我使用 z_mat_trans = z_mat.transpose()

将矩阵转置为与 rth 具有相同的维度