Bonjour,
Dans le cadre de l'étude de l'état de surface d'un matériau, j'ai obtenu suite à un scan une matrice de données de la forme suivante:
.....YYYY
...X.ZZZZ
...X.ZZZZ
...X.ZZZZ
...X.ZZZZ
Chaque point est donc désigné par ses coordonnées X-Y (coordonnées sur la "plan" du matériau) et sa hauteur Z. J'ai besoin de tracer ce nuage de points (NB: il y a des trous dans mon scan mais ce n'est pas un souci a priori), avec des couleurs en fonction de la hauteur, pour me permettre d'avoir une idée qualitative de cette surface.
Suite à mon scan, j'obtiens mes vecteurs de coordonnées X et Y (Liste_X, Liste_Y) et les hauteurs Z dans la liste de liste Z_Redressee. je fais ensuite un plot avec le code ci-dessous. Le problème est qu'au lieu d'avoir une couleur qui dépend de la hauteur Z, j'ai une surface uniforme donc difficilement lisible. J'ai essayé pas mal de choses vues sur divers forum mais je n'obtiens jamais un résultat satisfaisant.
Mon hypothèse est que ça pourrait venir des échelles (de l'ordre de 0.0002) mais j'ai essayé des modifications sans résultat. Je mets en pièce jointe une image du résultat. Savez-vous comment je pourrais améliorer ça?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Z_Redressee=np.array(Liste_Z_Redressee) Y,X=np.meshgrid(Liste_Y,Liste_X) fig2 = plt.figure(2) ax = fig2.add_subplot(1,1,1, projection='3d') surf = ax.plot_surface(Y, X, Z_Redressee, cmap=cm.coolwarm, linewidth=0) plt.savefig("cool_warm_sinus_land.png", bbox_inches='tight') plt.show()
Merci d'avance,
Partager