我有一个3个1D阵列:半径,角度和温度。它们一起形成环的2D温度图。数组采用以下形式:
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')
我结束了将列表z
分成3个列表,并使用z_mat = np.array([z1,z2,z3])
制作了一个矩阵。我注意到rad
和azm
的列表比z
包含一个项目,这是pcolormesh
的要求。之后,我使用r
将矩阵转换为与th
和z_mat_trans = z_mat.transpose()
相同的尺寸