我是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)