看起来平移功能在极轴上效果不佳。当我拖动鼠标左键时,它不会平移绘图。请参阅下面的图片:
平移功能在 matplotlib 的笛卡尔轴上运行正常。
这是一个非常简单的极坐标图测试代码:
import matplotlib.pyplot as plt
import numpy as np
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
ax.plot(theta, r)
ax.set_rmax(2)
ax.set_rticks([0.5, 1, 1.5, 2]) # Less radial ticks
ax.set_rlabel_position(-22.5) # Move radial labels away from plotted line
ax.grid(True)
ax.set_title("A line plot on a polar axis", va='bottom')
plt.show()
我想要的是平移并放大极轴,这样我就可以看到绘图的细节。目前,缩放仅发生在中心周围。所以,我需要一个平移功能。
有什么想法吗?谢谢。
编辑:
https://matplotlib.org/3.7.5/gallery/axisartist/demo_floating_axis.html
在上面的示例代码中,在笛卡尔轴内绘制了一个浮动极轴,我可以使用鼠标拖动来平移整个外轴,但我不确定如何在内极轴内绘制一些曲线.
可能与GH1700有关。一个“解决方法”是使用 cartopy 和
NorthPolarStereo
投影:
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(subplot_kw={"projection": ccrs.NorthPolarStereo()})
ax.set_extent([-180, 180, -1, 90], crs=ccrs.PlateCarree())
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
lat = 90 - r * 45
lon = np.degrees(theta) % 360
lon = (lon - 270) % 360
ax.plot(lon, lat, transform=ccrs.Geodetic())
ax.gridlines(draw_labels=False, ylim=(0, 90))
ax.set_frame_on(False)
ax.set_title("A line plot on a polar axis", va="bottom")
plt.show()