我在2D numpy数组中有一些模拟数据,大小类似于(512,768)。
该数据模拟从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添加径向偏移的技巧?
答案 0 :(得分: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 notebook],你可能已经找到了问题的解决方案,因为你可以在输入ax.
后按Tab键将弹出您可以使用的所有对象的列表。由于matplotlib被很好地标记,set_rmin
是一个相当明显的选择。