3

3 つの異なるクラスターにグループ化された 3 次元散布データをプロットしています。1 つは赤、もう 1 つは緑、もう 1 つは青です。

私が経験している問題は、クラスターがカメラと一列に回転すると、ビューアーが通常期待する空間順序でクラスターを表示しないことです (つまり、最も近いクラスターがカメラから最も遠いクラスターを遮る必要があります)。代わりに、スタッキングの優先順位が色 (この場合は 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

3D プロットについては、matplotlib のこれらの制限を参照してください。

動的に優れたビュー (つまり、プロットを移動する機能) が必要な場合、解決策はないと思います。そうでない場合は、zorderすべてのプロット呼び出しにキーワードを渡して、意図した結果を得ることができます。

于 2014-11-10T16:47:23.820 に答える