Illustration 3D d'une matrice

Fermé
sciPYTH - Modifié le 25 janv. 2022 à 15:12
mamiemando Messages postés 33357 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 novembre 2024 - 25 janv. 2022 à 15:31
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 samedi 22 janvier 2022 Statut Membre Dernière intervention 12 janvier 2023 42
Modifié le 25 janv. 2022 à 10:33
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 33357 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 novembre 2024 7 805
Modifié le 25 janv. 2022 à 15:33
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