python - 使用 cartopy 绘制地图时如何修改边距?
问题描述
我使用 cartopy(以下代码)绘制世界地图。我设置为ax = fig.add_axes([0, 0, 1, 1])
. 但是,输出映射总是在帧上显示较大的边距。我想将地图显示为全屏或全尺寸图像。
如何设置cartopy绘图的边距?
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
ax = plt.axes(projection=ccrs.PlateCarree())
ax.add_feature(cfeature.LAND)
ax.add_feature(cfeature.OCEAN)
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS)
ax.outline_patch.set_visible(False)
plt.show()
解决方案
您正在创建两个轴。
ax = fig.add_axes([0, 0, 1, 1])
这是紧贴图形的轴ax = plt.axes(projection=ccrs.PlateCarree())
这是显示世界地图的轴,但具有通常的边距。
您当然可以决定其中一个并删除另一个,例如
ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.PlateCarree())
这将创建一个紧靠在图形一侧的轴。原因是地图具有固定的纵横比,与图中的不一样。
因此,要使图形两侧的轴紧,您还需要设置图形大小。世界地图的纵横比为 0.5,因为它水平方向为 360 个单位,垂直方向为 180 个单位。因此,图形宽度需要是图形高度的两倍。例如
fig = plt.figure(figsize=(7, 3.5))
ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.PlateCarree())
结果:
推荐阅读
- wordpress - 仅在 XAMPP 本地计算机上的服务中出现 404 错误
- c# - 如何在不转换为正确类型的情况下格式化字符串
- sql - ORACLE SQL:如何使用 INNER JOIN 子句和多个 WHERE 子句选择 Max
- javascript - 我无法选择 puppeteer css 选择器
- python - 如何从某些列为真的组中返回前一个元素
- google-apps-script - 使用谷歌应用脚本使用 People API 更新谷歌联系人照片
- ios - 需要应用程序(强制)是否使用 Apple 登录?
- protractor - 无法使用量角器单击图块
- security - 在隐藏 AWS Lambda 内联代码方面需要帮助
- oauth-2.0 - 如何使用空手道发送带有 content-type:application/x-www-form-urlencoded 的 post 请求?