Cartopy 不格式化经度/纬度轴

问题描述 投票:0回答:1

我尝试用 cartopy 绘制地图,并用一些数字标记纬度。

请参阅以下代码。

最后两行无效,cartopy 仍然将纬度显示为“7.5°S 7°S ...”,而它应该是“7.5°S 7.0°S ...”

import matplotlib.pyplot as plt
import cartopy.mpl.ticker, cartopy.crs as ccrs

# Describe the model projection in the file
ProjIn   = ccrs.PlateCarree (central_longitude=0) 
# Projection for plots
ProjPlot = ccrs.PlateCarree (central_longitude=0) 

# Creates the figure
fig, ax = plt.subplots ( figsize=(15,6), subplot_kw={'projection':ProjPlot} )
ax.set_extent ( ( -60, 10, -10, 10,), crs=ProjIn )
ax.gridlines (draw_labels=True, crs=ProjIn)
ax.coastlines ()

# Format axes
ax.xaxis.set_major_formatter (cartopy.mpl.ticker.LongitudeFormatter(dms=False, number_format='03.1f'))
ax.yaxis.set_major_formatter (cartopy.mpl.ticker.LatitudeFormatter (dms=False, number_format='03.1f'))

我错过了什么吗?这是错误还是功能?

谢谢,

奥利维尔

cartopy
1个回答
0
投票

不确定这是否是一个 bug,但您绝对可以在

x/y
 中指定 
gridlines
格式化程序: :

import cartopy.crs as ccrs
import cartopy.mpl.ticker
import matplotlib.pyplot as plt

proj = ccrs.PlateCarree(central_longitude=0)

fig, ax = plt.subplots(figsize=(15, 6), subplot_kw={"projection": proj})

ax.set_extent((-60, 10, -10, 10), crs=proj)

lon_fmt = cartopy.mpl.ticker.LongitudeFormatter(number_format=".1f")
lat_fmt = cartopy.mpl.ticker.LatitudeFormatter(number_format=".1f")

ax.gridlines(draw_labels=True, crs=proj, xformatter=lon_fmt, yformatter=lat_fmt)

ax.coastlines()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.