在极地热图中绘制3个半径上的1D阵列

问题描述 投票:0回答:1

我有一个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')

This is how my example code comes out

python numpy matplotlib heatmap polar-coordinates
1个回答
0
投票

我结束了将列表z分成3个列表,并使用z_mat = np.array([z1,z2,z3])制作了一个矩阵。我注意到radazm的列表比z包含一个项目,这是pcolormesh的要求。之后,我使用r将矩阵转换为与thz_mat_trans = z_mat.transpose()相同的尺寸

© www.soinside.com 2019 - 2024. All rights reserved.