是否可以使用Matplotlib imshow()将二维数组显示为极坐标图?

时间:2011-06-23 01:02:57

标签: matplotlib

我是matplotlib的新手(我喜欢它!),但我很沮丧。我有一个极坐标网格表示为2D数组。 (行是径向部分,列是方位角部分)

我已经能够使用pyplot.imshow()将二维数组显示为矩形图像(R与theta),并使用pyplot.pcolor()作为极坐标图。但是,对于我正在使用的数组的大小,pcolor()痛苦慢,所以我希望能够使用imshow()将数组显示为极坐标网格。

使用pcolor(),就像为子图设置polar = True一样简单。有没有办法使用imshow()将2D数组显示为极坐标图?无需在整个阵列上进行坐标转换? 提前致谢

1 个答案:

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