Python 在matplotlib中缩放三维轴

Python 在matplotlib中缩放三维轴,python,matplotlib,Python,Matplotlib,我在matplotlib中缩放轴3d时遇到问题。我发现了另一个问题,但不知怎么的,答案似乎不起作用。下面是一个示例代码: import matplotlib as mpl import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt data=np.array([[0,0,0],[10,1,1],[2,2,2]]) fig=plt.figure() ax=Axes3D(fi

我在matplotlib中缩放轴3d时遇到问题。我发现了另一个问题,但不知怎么的,答案似乎不起作用。下面是一个示例代码:

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

data=np.array([[0,0,0],[10,1,1],[2,2,2]])

fig=plt.figure()
ax=Axes3D(fig)
ax.set_xlim3d(0,15)
ax.set_ylim3d(0,15)
ax.set_zlim3d(0,15)
ax.scatter(data[:,0],data[:,1],data[:,2])
plt.show()

似乎它只是忽略了ax.set命令…

根据我的经验,绘制数据后必须设置轴限制,否则它将查看数据并调整您之前输入的任何轴设置,以便将所有轴在帧中调整为沿所述轴的下一个方便的增量。例如,如果您将x轴限制设置为+/-400,但数据输出约为+/-1700,并且matplotlib决定以500为增量标记x轴,则它将显示相对于输出到+/-2000的x轴的数据

因此,在您的情况下,您只需要将最后一块文本重新排列为:

fig=plt.figure()
ax=Axes3D(fig)
ax.scatter(data[:,0],data[:,1],data[:,2])
ax.set_xlim3d(0,15)
ax.set_ylim3d(0,15)
ax.set_zlim3d(0,15)
plt.show()

色彩出空间的方式很好。但是,如果要自动进行缩放,则必须搜索数据中的最大值和最小值,并使用这些值进行缩放

min = np.amin(data)  # lowest number in the array
max = np.amax(data)  # highest number in the array

ax.set_xlim3d(min, max)
ax.set_ylim3d(min, max)
ax.set_zlim3d(min, max)

这对我来说很好。为什么要导入matplotlib?似乎
scatter
会重置轴,您可以将
ax.set…
函数调用放在
scatter
调用之后。