Bonjour, j'ai besoin d'utiliser cette fonction pour tracer un graphe de trois variables, je fait donc:
Axes3D.plot_surface(sol[:,0], sol[:,1], sol[:,2])
mais on me renvoie une erreur comme quoi il manque l'argument "Z".
Extrait de l'aide:
plot_surface(self, X, Y, Z, *args, **kwargs)
Create a surface plot.
By default it will be colored in shades of a solid color,
but it also supports color mapping by supplying the *cmap*
argument.
The `rstride` and `cstride` kwargs set the stride used to
sample the input data to generate the graph. If 1k by 1k
arrays are passed in the default values for the strides will
result in a 100x100 grid being plotted.
============= ================================================
Argument Description
============= ================================================
*X*, *Y*, *Z* Data values as 2D arrays
*rstride* Array row stride (step size),
J'en déduis qu'il considère le premier argument comme le "self" que j'ai mis en rouge mais je ne sais pas ce qu'est cet argument, d'autant plus quil n'est pas mentionné dans la liste d'arguments et nul par ailleurs sur le net alors je comprend pas.
Merci de m'aider. (j'espère que j'ai posté au bon endroit pour cela)
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
Bonne chance
A+
- Edité par nolimitech 31 décembre 2016 à 16:58:32
Axes3D.plot_surface
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.