Maison  >  Article  >  développement back-end  >  Comment afficher les étiquettes des deux axes dans une seule légende lors de l'utilisation de « twinx() » dans Matplotlib ?

Comment afficher les étiquettes des deux axes dans une seule légende lors de l'utilisation de « twinx() » dans Matplotlib ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 06:16:01539parcourir

How do I display labels from both axes in a single legend when using `twinx()` in Matplotlib?

Ajout d'une légende d'axe secondaire à un tracé Twinx()

Dans un tracé avec deux axes Y créé à l'aide de twinx(), ajout ajouter des étiquettes aux lignes et les afficher dans une légende peut être un défi. Initialement, seules les étiquettes de l'axe principal peuvent apparaître dans la légende.

Pour résoudre ce problème, ajoutez une légende pour l'axe secondaire à l'aide de la ligne :

ax2.legend(loc=0)

Cela entraînera deux légendes distinctes, une pour chaque axe.

Cependant, si vous souhaitez que toutes les étiquettes soient sur une seule légende, suivez ces étapes :

  1. Définissez les deux axes et tracez les lignes :

    ax = fig.add_subplot(111)
    ax2 = ax.twinx()
    
    lns1 = ax.plot(...)
    lns2 = ax.plot(...)
    lns3 = ax2.plot(...)
  2. Définissez les poignées et les étiquettes de légende :

    lns = lns1 + lns2 + lns3
    labs = [l.get_label() for l in lns]
  3. Ajoutez la légende en utilisant :

    ax.legend(lns, labs, loc=0)

Cette approche affichera toutes les étiquettes des axes dans une seule légende.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn