Проблема с set_xticks в 3D базовой карте с проекцией l cc - PullRequest
0 голосов
/ 09 июля 2020

Я использую mplot3d и basemap для построения некоторых данных. Я обнаружил, что если я использую проекцию cyl, следующие коды будут генерировать нормальную цифру. Однако, если я использую проекцию lcc, у set_xticks или set_yticks, похоже, есть некоторые проблемы. участки с проекцией l cc

Все значения меридианов или параллелей накладываются в углу. Как исправить?

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.basemap import Basemap

fig = plt.figure()
ax = fig.gca(projection='3d')
extent = [10,80,0,60]
bm = Basemap(llcrnrlon=extent[0], llcrnrlat=extent[2],
             urcrnrlon=extent[1], urcrnrlat=extent[3],
             lat_0=30,lon_0=45,projection='lcc',  
             # projection='cyl',
             resolution='l', fix_aspect=False, ax=ax)
ax.add_collection3d(bm.drawcoastlines(linewidth=0.25))
ax.add_collection3d(bm.drawcountries(linewidth=0.35))
ax.view_init(azim = 230, elev = 50)
ax.set_xlabel(u'Longitude (°E)', labelpad=10)
ax.set_ylabel(u'Latitude (°N)', labelpad=10)
ax.set_zlabel(u'Altitude (ft)', labelpad=20)
# Add meridian and parallel gridlines
lon_step = 30
lat_step = 30
meridians = np.arange(extent[0], extent[1]+lon_step, lon_step)
parallels = np.arange(extent[2], extent[3]+lat_step, lat_step)
ax.set_yticks(parallels)
ax.set_yticklabels(parallels)
ax.set_xticks(meridians)
ax.set_xticklabels(meridians)


ax.set_zlim(0., 40000.)
plt.show()
...