如何在极坐标图中使用pcolormesh?

3

我想使用极坐标投影的美丽圆形,但我有笛卡尔坐标数据。目前我所能做的最好的方式如下,但它有一个缺口。

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')

Best try

1个回答

0

参数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()

输出:

output


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接