Partage
  • Partager sur Facebook
  • Partager sur Twitter

Axes3D.plot_surface

    31 décembre 2016 à 16:09:48

    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) 

    -
    Edité par gaia38 31 décembre 2016 à 16:13:38

    • Partager sur Facebook
    • Partager sur Twitter
      31 décembre 2016 à 16:57:03

      Salut,

      Voici mon petit exemple..

      import matplotlib.pyplot as plt
      from mpl_toolkits.mplot3d import Axes3D
      import numpy as np
      
      fig = plt.figure()
      ax = fig.gca(projection='3d')
      
      X,Y = np.meshgrid([0,5], [0,5])
      Z = np.zeros(np.shape(X))
      
      surface = ax.plot_surface(X, Y, Z)
      
      plt.show()

      Je sais pas quel est le site que vous prenez, mais voici celui que je prends

      Exemple par le même site:

      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

      • Partager sur Facebook
      • Partager sur Twitter

      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.
      • Editeur
      • Markdown