在matplotlib scatter3D中强制执行轴后,仍在绘制外围数据点?

时间:2011-07-14 15:29:39

标签: matplotlib

我刚刚开始学习python,并且最近尝试使用matplotlib使用我的数据集制作3D散点图。因为我的数据是如此分散(x范围=(1到20000)),我试图强制X轴限制只显示x< 1000.但是,当我尝试设置轴限制时,我仍然会在图上看到大于x = 1000的点。我无法弄清楚为什么会这样做,而且无法通过我在互联网上的搜索找到答案:(

这是我所做的一个简化示例......当我将x轴限制强制为2时,我仍然看到绘制了点(3,3,3)。为什么这样做以及我做错了什么?

非常感谢你!


from matplotlib.figure import Figure
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.gca(projection='3d')

xs = [1,2,3,5,11]
ys = [1,2,3,4,5]
zs = [1,2,3,4,5]

ax.scatter3D(xs, ys, zs, c="blue")

ax.set_xlim3d([0,2])
ax.set_ylim3d([0,5])
ax.set_zlim3d([0,5])

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

1 个答案:

答案 0 :(得分:1)

以下适用于我。您刚刚在set_xlim3d调用中遇到了一个小错误。请查看here以获取更多文档。

from matplotlib.figure import Figure
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()
ax  = Axes3D(fig)

xs = [1,2,3,5,11]
ys = [1,2,3,4,5]
zs = [1,2,3,4,5]

ax.scatter(xs, ys, zs, c="blue")

ax.set_xlim3d(0,2)
ax.set_ylim3d(0,5)
ax.set_zlim3d(0,5)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()