3

我正在绘制分成三个不同簇的三维散点数据:一个是红色的,一个是绿色的,一个是蓝色的。

我遇到的问题是,当集群与相机一起旋转时,查看器不会以您通常期望的空间顺序显示集群(即:最近的集群应该遮挡离相机最远的集群)。相反,我看到堆叠优先级由颜色决定(在本例中为 R->G->B),红色优先于绿色,绿色优先于蓝色。

在下面的链接中,红色簇应该隐藏在绿色后面而不是它上面。 http://imgur.com/TdjW9aI

那么,是什么控制了散点数据的堆叠顺序(排列),我该如何更改它以便按照靠近相机的顺序给出显示优先级?

from pylab import *
from numpy import *
from mpl_toolkits.mplot3d import axes3d

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

# plot points in 3D
class1 = 0.5 * random.standard_normal((200,3))
ax.plot(class1[:,0],class1[:,1],class1[:,2],'o')
class2 = 0.7 * random.standard_normal((700,3)) + array([5,4,0])
ax.plot(class2[:,0],class2[:,1],class2[:,2],'o')
class3 = 0.3 * random.standard_normal((200,3)) + array([2,3,2])
ax.plot(class3[:,0],class3[:,1],class3[:,2],'o')

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

plt.show()
4

1 回答 1

1

请参阅matplotlib 的这些限制以进行 3D 绘图。

如果您需要动态良好的视图(即移动绘图的能力),我认为没有解决方案。如果不这样做,您可以将zorder关键字传递给所有绘图调用并获得您想要的结果。

于 2014-11-10T16:47:23.820 回答