【问题标题】:How do you pcolormesh with a polar plot?你如何对极坐标图进行 pcolormesh?
【发布时间】:2021-10-06 23:09:41
【问题描述】:

我想使用极坐标投影给出的漂亮圆圈,但我有笛卡尔数据。我现在能做的最好的是以下,但它有一个缺口。

fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})

xs, ys = np.meshgrid(np.linspace(-1,1,50),np.linspace(-1,1,50),)
parab = xs**2+ys**2

rs = np.sqrt(xs**2+ys**2)
ths = np.arctan2(ys, xs)

ax.pcolormesh(ths, rs, parab, shading='nearest')

【问题讨论】:

    标签: python matplotlib plot radial


    【解决方案1】:

    参数 shading='nearest' 在极坐标投影中看起来不受支持。 我通过使用另一个网格 xs_ ys_ 手动将颜色 C[i,j] 居中在 (ths[i,j], rs[i,j])

    fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
    
    n = 50
    
    xs, ys = np.meshgrid(np.linspace(-1,1,n),np.linspace(-1,1,n))
    dx, dy = 0.5*np.ptp(xs)/(n-1), 0.5*np.ptp(ys)/(n-1)
    xs_,ys_ = np.meshgrid(np.linspace(-1-dx,1+dx,n+1),np.linspace(-1-dx,1+dx,n+1))
    
    parab = (xs_+dx)**2+(ys_+dx)**2
    
    rs = np.sqrt(xs**2+ys**2)
    ths = np.arctan2(ys, xs)
    
    rs_ = np.sqrt(xs_**2+ys_**2)
    ths_ = np.arctan2(ys_, xs_)
    
    ax.pcolormesh(ths_, rs_, parab)
    
    plt.show()
    

    输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多