我正在使用Axes3D绘制一组三维坐标(x,y,z)。我的代码如下:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x,y,z=data[::1,0],data[::1,1],data[::1,2]
fig=plt.figure(figsize=(10,10))
ax=fig.add_subplot(111,projection='3d')
ax.scatter(x,y,z,s=0.1,c=z,cmap='hot',marker='+')
plt.show()
我希望三个轴具有相同的比例缩放。现在问题是数据具有大的纵横比,也就是说,x和y坐标的变化约为z坐标的10倍。如果我放置
mi=np.min(data)
ma=np.max(data)
ax.set_xlim(mi,ma)
ax.set_ylim(mi,ma)
ax.set_zlim(mi,ma)
这将导致轴坐标在各个方向上都是均匀缩放的,但会浪费很多z方向上的空间。我该如何避免这种情况并仍然获得均匀缩放的轴坐标呢?