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

时间:2018-07-18 06:25:59

标签: matplotlib projection matplotlib-basemap

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

这导致: cropped map boundary

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

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

1 个答案:

答案 0 :(得分:1)

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

enter image description here