Bonjour,
Je n'arrive pas à comprendre ce qu'il faut passer à axes3D.plot_surface() pour dessiner une surface.
Je voudrais dessiner un rectangle défini par 4 points.
L'interface de plot_surface est : "plot_surface(X,Y,Z) where X,Y,Z are data values as 2D arrays."
Dans les exemples du tuto, X, Y Z sont construits avec numpy
Mon code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
from numpy import *
 
fig = plt.figure()
ax = fig.gca(projection='3d')
 
X = array([0,5,5,0])
Y = array([0,0,5,5])
Z = array([0,0,0,0])
sur = ax.plot_surface(X,Y,Z)
plt.show()
L'execution sort en erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
rows,cols = Z.shape
ValueError : need more than 1 value to unpack
J'en déduit que Z doit exprimer 2 dimensions, mais je ne comprends pas ce que je devrais donner de plus en entrée.
Merci