我是matplotlib的新手(我喜欢它!),但我很沮丧。我有一个极坐标网格表示为2D数组。 (行是径向部分,列是方位角部分)
我已经能够使用pyplot.imshow()将二维数组显示为矩形图像(R与theta),并使用pyplot.pcolor()作为极坐标图。但是,对于我正在使用的数组的大小,pcolor()痛苦慢,所以我希望能够使用imshow()将数组显示为极坐标网格。
使用pcolor(),就像为子图设置polar = True一样简单。有没有办法使用imshow()将2D数组显示为极坐标图?无需在整个阵列上进行坐标转换? 提前致谢
答案 0 :(得分:11)
经过一些研究后,我发现了pcolormesh()函数,它已经证明比使用pcolor()更快显着,并且与imshow()的速度相当。
这是我的解决方案:
import matplotlib.pyplot as plt
import numpy as np
#...some data processing
theta,rad = np.meshgrid(used_theta, used_rad) #rectangular plot of polar data
X = theta
Y = rad
fig = plt.figure()
ax = fig.add_subplot(111)
ax.pcolormesh(X, Y, data2D) #X,Y & data2D must all be same dimensions
plt.show()