Partage
  • Partager sur Facebook
  • Partager sur Twitter

changer position des labels en x (Matplotlib)

Sujet résolu
    15 décembre 2023 à 11:43:14

    Bonjour,

    J'ai ce graphique.

    J'aimerais, pour sauver de la place, mettre les titres des données en x (en position verticale) sur les barres de mon diagramme à barres.

    Quelqu'un aurait-il une solution ?

    Mon code:

    plt.bar(height=top_10_pays_sous_nutrition['taux'], x=top_10_pays_sous_nutrition['Zone'])
    plt.title('Sous-nutrition la plus élevée en 2017 : top 10', fontweight='bold')
    plt.xlabel('Pays')
    plt.ylabel('Taux sous-nutrition (%)')
    plt.xticks(rotation='vertical')
    plt.ylim([20, 50])

    Merci,

    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2023 à 13:23:54

      Changer la position des labels se fait via set_(x|y)label mais cela ne va pas permettre de les placer n'importe où. Reste à placer du texte a une position (x, y) donnée et trouver des exemples sur Internet pour les détails.
      • Partager sur Facebook
      • Partager sur Twitter
        15 décembre 2023 à 15:00:09

        Tu peux utiliser matplotlib.pyplot.text avec un truc du genre

        for index, value in enumerate(top_10_pays_sous_nutrition['taux']):

            plt.text(index, value, str(top_10_pays_sous_nutrition['Zone'][index]), ha='center', va='bottom')

        Désolé pas de balise je suis sur mon mobile.

        • Partager sur Facebook
        • Partager sur Twitter

        Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
        La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

          15 décembre 2023 à 23:05:06

          Fred, merci bcp pour ta réponse qui m'a bien aidé.

          j'ai modifié un peu en :

          for index, value in enumerate(top_10_pays_sous_nutrition['taux']):
          plt.text(index, value, str(top_10_pays_sous_nutrition['Zone'][index]), ha='center', va='top', rotation='vertical', color='white')
          et j'obtiens ce que je veux :
          • Partager sur Facebook
          • Partager sur Twitter
            16 décembre 2023 à 14:04:05

            Bonjour, Pour insérer du code sur le forum merci d'utiliser le bouton code </> de la barre d'outil ce qui active la coloration syntaxique.

            Si le sujet est résolu, indiquer le comme tel grâce au bouton "sujet résolu" à droite du titre du sujet.

            Sujet résolu

            Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e ;)
            • Partager sur Facebook
            • Partager sur Twitter

            changer position des labels en x (Matplotlib)

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown