Illustration 3D d'une matrice

sciPYTH -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je dispose d'une matrice de données expérimentales telles que la première colonne représente les X, la première ligne les Y et l'intérieur de la matrice les Z :

     y1     y2     y3     y4
x1 z1,1 z1,2 ... ...
x2 z2,1 z2,2
x3
x4


Savez vous comment représenter sur un graph 3D ce type de données?

Merci
A voir également:

2 réponses

urilou777 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   43
 
non mais je sais qu'il y a des logiciels comme SCILAB ou MATLAB (et dans une moindre mesure XCAS) qui permettent sûrement d'arriver à tes fins. Plus qu'à trouver un tutoriel
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
Bonjour,

Généralement on utilise plutôt une heat map, qu'on obtient par exemple à l'aide
matplotlib.pyplot.matshow


Exemple :

import matplotlib.pyplot
matplotlib.pyplot.matshow([[1, 2], [2, 4]])


Il existe aussi des affichages en 3D, voir par exemple
ax.scatter3D
mais ce genre de graphiques sont généralement peu exploitables. Ce layout attend une séries de points 3D présentés sous la forme de trois vecteurs, correspondant respectivement aux coordonnées x, y, et z.

Pour convertir ta matrice sous ce format, tu peux faire ainsi :

import matplotlib.pyplot as plt

a = [[1, 2], [2, 4]] # Must be a square matrix
m = len(a)
x, y, z = map(
    list,
    zip(
        *(
            (i, j, a[i][j])
            for i in range(m)
            for j in range(m)
        )
    )
)
print(x, y, z) # [0, 0, 1, 1], [0, 1, 0, 1], [1, 2, 3, 4]
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.scatter3D(x, y, z)


Bonne chance
0