2011-12-06 2 views
1

je la commande ci-dessous pour créer un nuage de points 3D:matplotlib couleurs de nuage de points 3D de points très légers

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 regarder si la lumière même quand je mets alpha 1. Ils ont presque On dirait d'être derrière un masque. Il semble également dépendant de la position 3D des différents individus. Y at-il un moyen de rendre tous les points très sombres et opaques?

+0

Pouvez-vous publier un exemple de travail minimal? – mac

Répondre

3

Cela semble être la dispersion en utilisant une fantaisie effet 3D de sorte que vous pouvez distinguer entre les points de le premier plan et les points en arrière-plan. Vous devrez peut-être pirater mplot3d pour l'empêcher de faire ça. Alternativement, vous pouvez utiliser plot3D qui n'affiche pas ce comportement.

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

ouais, bonne solution – joaquin

2

Avec alpha = 0,8 points, vous avez déjà l'air très transparent. N'utilisez pas alpha.
En outre, vous pouvez donner un aspect plus foncé à vos points en dessinant leurs lignes de contour dans une couleur plus foncée que leur facecolor respectif.
Utilisez le paramètre de mot-clé de dispersion edgecolor/edgecolors ou un ensemble après la création de dispersion (par exemple en gras tous les points avec une bordure noire) avec myscatterplot.set_edgecolors(color)

+1

J'ai essayé. L'ajout d'edgecolor rend les bordures plus foncées mais le point (1,1,1) et les points proches semblent toujours très vagues et beaucoup plus clairs que (10,10,10) – Jingping

+1

ouais, mpl3d essaie de donner un sentiment 3d en utilisant la transparence. Peut-être que l'effet peut être éliminé, même si je ne sais pas comment, encore – joaquin

Questions connexes