Cartopy дает вам именно то, что вы просили, то есть метки в (-90, -60, -30, 0, 30, 60, 90) в проекции Миллера , то есть не в градусах широты. Поскольку вы используете LatitudeFormatter
, он преобразует эти точки проекции Миллера в градусы широты для вас.
Похоже, вы хотели сделать метку в системе координат широта / долгота, поэтому вам следует используйте ccrs.PlateCarree()
в качестве аргумента crs
при создании тиков, например:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.ticker import LatitudeFormatter
import numpy as np
fig = plt.figure(figsize=(8, 10))
miller = ccrs.Miller(central_longitude=180)
ax = fig.add_subplot(1, 1, 1, projection=miller)
ax.set_global()
ax.coastlines()
ax.set_yticks(np.arange(-90, 90.5, 30), crs=ccrs.PlateCarree())
lat_formatter = LatitudeFormatter()
ax.yaxis.set_major_formatter(lat_formatter)
plt.show()