首页 文章

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

提问于
浏览
9

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

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

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

1 回答

  • 9

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

相关问题