Question

J'ai utilisé la commande ci-dessous pour créer un tracé de dispersion 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()

Mais la couleur des points a l'air si légère même lorsque je mets Alpha à 1. Ils ont presque l'air d'être derrière un masque. Il semble également dépendre de la position 3D des SOT individuels. Existe-t-il un moyen de rendre tous les points vraiment sombres et opaques?

Était-ce utile?

La solution

Cela semble se disperser en utilisant un effet 3D sophistiqué afin que vous puissiez faire la distinction entre les points au premier plan et les points en arrière-plan. Vous devrez peut-être pirater MPLOT3D pour que cela cesse de le faire.

Alternativement, vous pourrez peut-être utiliser Plot3D qui ne montre pas ce comportement.

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

Autres conseils

Avec Alpha = 0,8 points, semblent déjà très transparents. N'utilisez pas Alpha.
De plus, vous pouvez donner un aspect plus sombre à vos points en dessinant leurs édgelines de couleur plus foncée que leur facecolor respectif.
Utiliser le paramètre de mot-clé Scatter edgecolor/edgecolors ou réglé après la création de dispersion (par exemple pour gras tous les points avec une bordure noire) avec myscatterplot.set_edgecolors(color)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top