我有一些二维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/