Python中网格数据的PolarColor映射图

时间:2016-10-09 16:00:44

标签: python r matlab matplotlib

我想绘制一个网格数据的颜色图,以极坐标形式绘制网格。在数据中,r的范围是1到2和theta 0到360.我想要这样的地图:

enter image description here     我这样画了

#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()

输出: enter image description here

enter image description here

任何想法如何绘制上图?我也尝试将r,theta转换为x,y然后我得到r< 1范围内的颜色贴图,我不想要。

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

output figure