matplotlib - 底图圆形立体图地图边界裁剪
问题描述
我正在使用 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()
这导致:
我用红色椭圆(顶部和左侧)标记了裁剪部分。如果我更改“线宽”参数,这没有什么区别。
是否有解决此问题的方法可以使边界线宽均匀?感谢您提前提供任何帮助和建议!
解决方案
定义地图边界的圆圈被实际使用的轴剪裁。您可以使用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()
推荐阅读
- javascript - 数据 dateTime 到仅绘制折线图的日期
- c# - UseInMemoryDatabase 是否可以自动递增 id?
- javascript - 循环时如何访问数组元素子元素?
- javascript - 如何在没有任何 Javascript 的情况下将 Excel 2016 文件/表格保存为 HTML 文件/表格?
- spring - 升级到云父后,maven 发布过程出错
- node.js - Node.js:将插入的行从 PostgreSQL v.11 返回到浏览器
- java - 在独立库中使用 Feign 与 Springboot 应用程序
- python - 如何应用经过训练的神经网络?
- javascript - 如何在 JS 对象之间共享 websocket 连接?
- c# - 跨多个区域的单例时间触发 Azure 函数