在3D轴上设置aspect时,应该使用matplolib库中的Axes3D对象。例如:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.basemap import Basemap
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
map = Basemap(ax=ax)
ax.set_box_aspect((map.urcrnrx - map.llcrnrx), (map.urcrnry - map.llcrnry), (ax.get_zlim()[1]-ax.get_zlim()[0]))
这里使用Axes3D对象来创建3D轴,然后将它传递给Basemap。在设置aspect时,只需使用Axes3D对象提供的set_box_aspect
方法即可。