首页 > 解决方案 > 底图圆形立体图地图边界裁剪

问题描述

我正在使用 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()

这导致: 裁剪的地图边界

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

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

标签: matplotlibprojectionmatplotlib-basemap

解决方案


定义地图边界的圆圈被实际使用的轴剪裁。您可以使用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()

在此处输入图像描述


推荐阅读