Partage
  • Partager sur Facebook
  • Partager sur Twitter

Python 3.6.5 - Matplotlib.pyplot.hist

ValueError: to many values to unpack

Sujet résolu
    8 septembre 2021 à 20:42:57

    Bonjour à tous !

    J'essaye d'exécuter le code suivant dans un Jupyter-Notebook :

    import numpy as np
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    x = 20 * np.random.randn(10000)
    
    plt.hist(x, 25, range=(-50, 50), histtype='stepfilled',
             align='mid', color='g', label='Données de test')
    plt.legend()
    plt.title('Histogramme avec remplissage')
    plt.show()
    J'ai une erreur lors du traitement de l'histogramme :
    Il s'occupe de tout jusqu'à ce que l'erreur apparaisse avec "stacked=stacked, normed=normed, data=data, **kwargs"
    Ensuite, il dit qu'un "RuntimeWarning, stacklevel=2" a été activé.
    L'erreur qui a été remontée est ValueError: to many values to unpack (expected 2)
    Avez-vous une idée de l'origine du problème et de comment le résoudre ?
    J'ai eu cet exemple dans le livre Python pour la Datascience pour les Nuls. Normalement, ce code doit fonctionner avec la version 3.6.5. En effet, l'auteur nous avertis que les versions ultérieures ne permettent pas de réaliser l'ensemble des exemples proposés dans le livre. C'est pourquoi j'utilise cette version de python.
    D'avance, merci pour votre aide !

    -
    Edité par GabrielRance 8 septembre 2021 à 20:44:09

    • Partager sur Facebook
    • Partager sur Twitter
      8 septembre 2021 à 21:52:38

      Je n'ai pas accès à des versions plus anciennes que 3.6.9 mais le programme semble marcher sous python 3.6.9 et 3.7

      Tu ne confondrais pas ultérieures et antérieures, souvent par soucis de compatibilité/continuité, les versions ultérieures supportent les fonctions basiques (j'imagine ce que tu fais vu le titre du livre ;))

      Il est de bonne habitude de garder ses paquets à jour, tu n'es pas encore en entreprise où tu devras gérer des dépendences dans tous les sens.

      Je te conseille donc de passer en toute séreinité à la dernière version stable de python, quitte à installer une version plus ancienne des librairies numpy, matplotlib, sklearn, ...

      • Partager sur Facebook
      • Partager sur Twitter
        9 septembre 2021 à 10:35:33

        J'ai copié-collé le code tel quel dans Jupyter en ligne (qui utilise python 3.6.13) dans une cellule, et aucune erreur.

        Il faudrait aussi savoir sur quelle ligne tu as l'erreur. peut-être un problème de la version de matplotlib ? (un ccopier-coller du message d'erreur/traceback complet pourrait aider)

        • Partager sur Facebook
        • Partager sur Twitter
          9 septembre 2021 à 15:12:05

          Codz_01

          Non l'auteur précise bien dans son livre que les versions ultérieures (py3.7+) ne gèrent pas tous les exemples, c'était le cas pour certains autres que j'ai pu voir avant celui-ci.

          Je compte bien utiliser les versions de python les plus récentes pour la suite, je n'ai mis 3.6.5 que pour les exemples du livre. En l'occurrence avec la dernière version mon exemple fonctionnait correctement.

          umfred

          Entre temps j'ai dû réinstaller anaconda parce que j'ai pourri mon environnement avec une mauvaise manip, je n'ai plus accès à l'erreur à moins de recréer un envt py3.6.5

          L'erreur était dans .hist(x, 25 etc) en enlevant des paramètres le tableau s'affichait bien, en enlevant 1 à 1 il y avait toujours une erreure, en modifiant le range aussi etc. Je pense que l'origine du problème était dûe à normed (qui a été remplacé par densité) ou à un problème que je n'arrive pas à sonder ahah.

          Quoiqu'il en soit changer de version m'a permis de mener l'exemple jusqu'au bout, je vais continuer avec la dernière version jusqu'à trouver un nouveau code qui ne sera pris en compte que par 3.6.5

          Je considère ce thread résolu vu que mon objectif était surtout de réussir à afficher l'histogramme.

          Merci pour vos réponses !

          • Partager sur Facebook
          • Partager sur Twitter

          Python 3.6.5 - Matplotlib.pyplot.hist

          × 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