我想绘制一个网格数据的颜色图,以极坐标形式绘制网格。在数据中,r的范围是1到2和theta 0到360.我想要这样的地图:
#x1 of shape(12,)
#y1 0f shape(36,1)
#z of shape(36,12)
fig=plt.figure()
ax=fig.add_subplot(111) #Output Figure 1
#ax=fig.add_subplot(111,polar='True') #Output Figure 2
ax=fig.add_subplot(111)
ax.pcolor(y1,x1,z)
plt.show()
任何想法如何绘制上图?我也尝试将r,theta转换为x,y然后我得到r< 1范围内的颜色贴图,我不想要。
答案 0 :(得分:1)
正如here指出的那样,pcolormesh()
对此非常有用。
import matplotlib.pyplot as plt
import numpy as np
theta = np.linspace(0, 2*np.pi, 36)
r = np.linspace(1, 2, 12)
R, THETA = np.meshgrid(r, theta)
Z = np.sin(THETA) * R
plt.subplot(111, projection='polar')
plt.pcolormesh(THETA, R, Z)
plt.gca().set_rmin(0.0)
plt.show()