2011-12-06 16 views
1
私は3D散布図を作成するには、以下のコマンドを使用し

matplotlibの3D散布図の色

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

sizeseq = 2 
colorseq = "k" 

fig = plt.figure(1, (5,5), dpi=300) 
ax = Axes3D(fig) 
ax.view_init(20, -45) 

x, y, z = [1,2,3,4,5,6,7,8,9,10], [1,2,3,4,5,6,7,8,9,10], [1,2,3,4,5,6,7,8,9,10] 
ax.scatter(x, y, z, c=colorseq, s=sizeseq, lw=0, alpha=.8) 

plt.show() 

しかし、ドットの色を見て、私は1にアルファを設定しても、その光彼らはほとんどマスクの後ろにいるように見える。また、個々の鉢の3D位置にも依存しているようです。ドットのすべてを本当に暗くて不透明に見せる方法はありますか?

+0

最小の使用例を投稿できますか? – mac

答えて

3

とこれはあなたがドットを区別することができますので、飛散派手な3D効果を使用しているように見えますフォアグラウンドとバックグラウンドのドット。 mplot3dをハックして、それを止めさせなければならないかもしれません。

また、この動作を示さないplot3Dを使用することもできます。

ax.plot3D(x, y, z, 'k.', alpha=.8) 
+0

ええ、良い解決策 – joaquin

2

アルファ= 0.8ドットはすでに非常に透明に見えます。アルファは使用しないでください。
さらに、それぞれの面色よりも暗い色でエッジグリッドを描くことで、ドットを暗くすることができます。
使用散乱キーワードパラメータ散布作成後edgecolor/edgecolorsまたは設定(例えば黒の境界線を持つすべての点大胆に)myscatterplot.set_edgecolors(color)

+1

私は試しました。 edgecolorを追加すると濃い罫線が作成されますが、ドット(1,1,1)、近くのドットは(10,10,10) – Jingping

+1

よりもぼんやりと薄くなります。mpl3dは透明度を使用して3D感を与えようとします。私は方法がわからないけれども、おそらく効果が排除することができますまだ – joaquin