gpt4 book ai didi

python - cartopy set_xlabel set_ylabel(不是刻度标签)

转载 作者:太空狗 更新时间:2023-10-30 00:48:54 26 4
gpt4 key购买 nike

使用 cartopy map 时,我无法添加 xlabel 或 ylabel。有没有办法做到这一点?我不是在寻找滴答标签。

import matplotlib.pyplot as plt
import cartopy
ax = plt.axes(projection=cartopy.crs.PlateCarree())
ax.add_feature(cartopy.feature.COASTLINE)
ax.set_xlabel('lon')
ax.set_ylabel('lat')
plt.show()

最佳答案

Cartopy 的 matplotlib gridliner 接管 xlabel 和 ylabel 并使用它来管理网格线和标签。 https://github.com/SciTools/cartopy/blob/master/lib/cartopy/mpl/gridliner.py#L93

import matplotlib.pyplot as plt
import cartopy
ax = plt.axes(projection=cartopy.crs.PlateCarree())
ax.add_feature(cartopy.feature.COASTLINE)
gridlines = ax.gridlines(draw_labels=True)
# this would not function, due to the gridliner
# ax.set_xlabel('lon')
# ax.set_ylabel('lat')
plt.show()

如果您想向 cartopy 轴的轴实例添加标签,您应该放置它们,使它们不与网格线重叠。目前需要手工完成,例如:

import matplotlib.pyplot as plt
import cartopy
ax = plt.axes(projection=cartopy.crs.PlateCarree())
ax.add_feature(cartopy.feature.COASTLINE)
gridlines = ax.gridlines(draw_labels=True)
ax.text(-0.07, 0.55, 'latitude', va='bottom', ha='center',
rotation='vertical', rotation_mode='anchor',
transform=ax.transAxes)
ax.text(0.5, -0.2, 'longitude', va='bottom', ha='center',
rotation='horizontal', rotation_mode='anchor',
transform=ax.transAxes)
plt.show()

您需要调整 ax.text 位置的值,以在每种情况下获得您想要的效果,这可能有点令人沮丧,但它是有用的。

添加到 cartopy 以自动执行此放置将是一个很好的功能。

labelled gridliner

关于python - cartopy set_xlabel set_ylabel(不是刻度标签),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35479508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com