Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de dimension

    30 décembre 2016 à 22:51:19

    Bonsoir, 

    Je travaille sur un code python mais je n'arrive pas à afficher une courbe à un moment..

    Le code est plus complexe mais en gros j'en suis là : 

    import matplotlib.pyplot as pl 

    stockage=[20, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 28, 28]

    VV=[]

    t=1/240

    for i in range(1,len(stockage)):

    VV.append((abs((stockage[i-1]-stockage[i])/t)))

    T=[(1/240)*x for x in range(1,len(stockage)+1)]

    pl.plot(VV,T)

    pl.show()

    Et python me retourne ValueError: x and y must have same first dimension


    J'ai essayé de convertir en tableau : 

    x=np.array(VV)

    y=np.array(T)

    pl.plot(x,y)

    Mais toujours le même message d'erreur
    Quelqu'un voit comment faire ? Merci d'avance
    [Edit] : Autant pour moi mes listes n'était pas de même longueur !!

    -
    Edité par Sammyssa 30 décembre 2016 à 23:20:37

    • Partager sur Facebook
    • Partager sur Twitter
      31 décembre 2016 à 16:30:29

      Salut,

      Premièrement, pour vous aider et que tout soit compréhensible, vous devriez écrire votre code, dans les balises prévus à cet effet.

      Deuxièmement, si vous aviez vérifié vos variables à l'aide d'un print(), comme vous devriez faire avant chaque demande d'aide. Vous auriez remarquer, que le nombre d'éléments entre vos deux listes, est différent.

      print('W:', W, len(W))
      print('T:', T, len(T))
      

      Vous avez donc;

      W = 15 éléments

      T = 16 éléments

      Il faut donc, enlever le +1 à votre boucle FOR

      import matplotlib.pyplot as pl 
      
      stockage=[20, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 28, 28]
      
      W=[]
      
      t=1/240 
      for i in range(1,len(stockage)):
          W.append((abs((stockage[i-1]-stockage[i])/t)))
      
      T=[(1/240)*x for x in range(1,len(stockage))] #ICI, enlever le +1
      
      print('W:', W, len(W))
      print('T:', T, len(T))
      
      
      pl.plot(W,T)
      pl.show()

      #EDIT

      Oups, je viens de voir que ce n'est pas une variable W, mais deux 'V', VV


      Bonne chance

      A+


      -
      Edité par nolimitech 31 décembre 2016 à 16:34:56

      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2017 à 8:58:09

        Oui effectivement je me suis rendu compte de cette erreur, merci !
        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2017 à 16:07:05

          Fait plaisir,

          Si vous pouvez fermer cette discussion.

          Merci.

          • Partager sur Facebook
          • Partager sur Twitter
            2 janvier 2017 à 19:20:43

            D'un autre côté, si t'as matplotlib, tu dois avoir numpy d'installé avec...

            import matplotlib.pyplot as pl
            import numpy as np
             
            stockage=[20, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 28, 28]
            
            stockage = np.array( stockage )
            W = np.abs(np.diff(stockage)) * 240.
            T = np.arange(len(W)) * (1./240)
             
            pl.plot(W,T)
            pl.show()
            • Partager sur Facebook
            • Partager sur Twitter

            Problème de dimension

            × 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