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



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

我已经能够使用pyplot.imshow()将2D阵列显示为矩形图像(R与θ),并使用pyplot.pcolor()将其显示为极坐标图。然而,对于我正在使用的阵列的大小,pcolor)的速度非常慢,所以我希望能够使用imshow.()将阵列显示为极轴网格。

使用pcolor(),这就像为子图形设置polar=True一样简单。有没有任何方法可以使用imshow()将2D阵列显示为极坐标图?而不必对整个阵列进行坐标变换?提前感谢

经过一些研究,我发现了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()

最新更新