Bonjour,
Je ne suis pas habitué à poster des questions sur des forums, mais là, je bloque sur un problème qui, j’en suis certain, tient à un détail qui m’échappe.
J’aimerai représenter les résultat d’un levé (x,y,z) en colorant mes points en fonction de leur hauteur (valeur de z). La fonction scatter3D de matplotlib est faite pour ça visiblement. Tout marche du tonnerre pour la colorbar (jet) qui est bien limitée aux valeurs extrêmes de z mais... rien de chez rien pour la coloration de mes données (couleur uniforme alors que je demande de colorer en fonction de z via mon argument c=z).
Voici le bout de code relatif:
Si je ne représente pas la colorbar sur mon graphique de sortie (code un peu plus simple), j'ai logiquement (et malheureusement) toujours le même résultat, à savoir une couleur uniforme pour mes points:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 from mpl_toolkits.mplot3d.axes3d import * import pylab as plt x=y=z=range(10) fig = plt.figure() ax = Axes3D(fig) col=ax.scatter3D(x,y,z,c=z,cmap=plt.cm.jet) cbar = fig.colorbar(col,shrink=0.9,extend='both') cbar.ax.set_ylabel('axis 3 data values') plt.show()
Voyez-vous ce qui cloche dans mes arguments?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 from mpl_toolkits.mplot3d.axes3d import * import pylab as plt x=y=z=range(10) fig = plt.figure() ax = Axes3D(fig) ax.scatter3D(x,y,z,c=z,cmap=plt.cm.jet) plt.show()
Merci beaucoup d’avance !
EDIT....: Il s'agit d'un bug, qui a été pris en compte et sera (ou a déjà été) corrigé.![]()
Partager