我有一些二维numpy数组中的模拟数据,大小类似(512768)。
该数据从rmin=1到rmax=100,phi从0到2pi进行模拟
我试着在极坐标图上绘制,但是没有径向偏移,这看起来很奇怪。注:图像来自径向密度分布,因此绘图应该是径向对称的。
不设置xlim/ylim:

fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')

rho = // 2D numpy array

ax.pcolormesh(rho)
fig.show()

设置xlim/ylim时:
fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')

rho = // 2D numpy array
print rho.shape

ax.axis([x_scale[0], x_scale[-1], y_scale[0], y_scale[-1]])

ax.pcolormesh(rho)
fig.show()

具有手动轴+x/y值。
fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')

rho = // 2D numpy array
print rho.shape

ax.axis([x_scale[0], x_scale[-1], 0, y_scale[-1]])
y_scale_with_offset = np.insert(y_scale, 0, 0)

ax.pcolormesh(x_scale, y_scale_with_offset, rho)

ax.pcolormesh(rho)

有没有从1开始添加径向偏移的技巧?

最佳答案

我相信你可以在极坐标图中使用ax.set_rmin(),负值会给你你想要的效果。

fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')

c = np.ones((50,50)) + np.arange(50).reshape(50,1)

aP = ax.pcolormesh(c)
plt.colorbar(aP)
ax.set_rmin(-10.0)
plt.show()

包含一个比例是值得的,这样你就知道不只是从图中删除数据(我想这不是你想要的)。
另一方面,如果您还没有查看[ipython笔记本],您可能已经找到了解决问题的方法,因为您可以在键入ax.后按tab键,它将弹出一个包含您可以使用的所有对象的列表。由于matplotlib的标签很好,set_rmin是一个相当明显的选择。

关于python - 在matplotlib中的极坐标投影上设置径向偏移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18891127/

10-11 16:20