底图圆形立体图地图边界裁剪

basemap round stereographic plot mapboundary cropped

我正在努力使用 matplotlib 底图工具包绘制圆形立体图。 我总是在顶部、底部和左侧、右侧得到一个裁剪过的地图边界。示例代码:

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt

m = Basemap(projection='spstere', boundinglat=-60, lon_0=180,
lat_ts=-71, round=True, ellps='WGS84')

m.drawparallels(np.arange(-90.,-60.0, 10.), linewidth=0.1)
m.drawmeridians(np.arange(-180.,181.,45.), linewidth=0.1, latmax=90)
m.drawmapboundary(linewidth=2, color='k')

plt.savefig("test.png",dpi=600, transparent=True)
plt.show()

这导致:

我用红色椭圆标记了裁剪部分(顶部和左侧)。如果我更改“linewidth”参数,这没有什么不同。

是否有解决此问题的方法使边界的线宽均匀? 感谢您提前提供任何帮助和建议!

定义地图边界的圆被实际使用的坐标轴截断了。您可以使用 clip_on 选项让它不被剪裁。

circle = m.drawmapboundary(linewidth=2, color='k')
circle.set_clip_on(False)

示例代码如下所示

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt

m = Basemap(projection='spstere', boundinglat=-60, lon_0=180,
lat_ts=-71, round=True, ellps='WGS84')

m.drawparallels(np.arange(-90.,-60.0, 10.), linewidth=0.1)
m.drawmeridians(np.arange(-180.,181.,45.), linewidth=0.1, latmax=90)
circle = m.drawmapboundary(linewidth=2, color='k')
circle.set_clip_on(False)

plt.savefig("test.png",dpi=600, transparent=True)
plt.show()