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

Joh*_*ohn 10 matplotlib

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

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

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

Joh*_*ohn 12

经过一番研究,我发现了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()
Run Code Online (Sandbox Code Playgroud)

  • 在新版本中不起作用,仍然需要`add_subplot(111, polar='True')` (2认同)