【发布时间】:2015-03-17 08:43:43
【问题描述】:
我正在使用 Axes3D 绘制一组 3d 坐标 (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 方向浪费大量空间。我怎样才能避免这种情况并获得统一缩放的轴?
【问题讨论】:
-
您希望您的坐标区具有相同的刻度吗?还是一样大?
-
我希望它们具有相同的比例。然后,由于我有非均匀分布的数据并且不想在图中浪费空间,所以我将拥有长度非常不同的轴。
标签: python matplotlib plot