Maison  >  Article  >  développement back-end  >  Comment afficher les étiquettes des deux axes dans une légende de tracé Twinx() ?

Comment afficher les étiquettes des deux axes dans une légende de tracé Twinx() ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 07:38:02824parcourir

How to Display Labels for Both Axes in a Twinx() Plot Legend?

Axe secondaire avec twinx() : ajout à la légende

Considérons un tracé avec deux axes y, créé à l'aide de twinx(), avec lignes étiquetées pour chaque axe. Cependant, lors de l'utilisation de legend(), il affiche uniquement les étiquettes d'un axe, à l'exclusion de l'étiquette du deuxième axe. Cet article a pour objectif de résoudre ce problème et de vous guider dans l'ajout du label manquant à la légende.

Twinx() et Legends

Dans l'exemple fourni, twinx() est utilisé pour créer un deuxième axe y (ax2) qui partage le même axe x (temps) que l'axe principal (ax). Lorsque vous tentez d'afficher toutes les étiquettes de la légende, seules celles associées à ax (Swdown et Rn) sont visibles, tandis que l'étiquette pour ax2 (temp) est absente.

Ajout de l'étiquette manquante

Pour inclure l'étiquette manquante dans la légende, il existe deux approches :

Approche 1 : Légendes multiples

Ajoutez la ligne suivante pour créer un légende séparée pour ax2 :

<code class="python">ax2.legend(loc=0)</code>

Cela vous donnera deux légendes, une pour chaque axe.

Approche 2 : Légende consolidée

Pour combinez toutes les étiquettes en une seule légende, suivez ces étapes :

  1. Créez une liste de tous les objets de ligne (lignes des deux axes) :

    <code class="python">lns = lns1 + lns2 + lns3</code>
  2. Extraire les étiquettes pour chaque ligne :

    <code class="python">labs = [l.get_label() for l in lns]</code>
  3. Utilisez la fonction de légende pour ajouter toutes les étiquettes à une seule légende sur la hache :

    <code class="python">ax.legend(lns, labs, loc=0)</code>

Exemple

Le code modifié suivant montre comment ajouter l'étiquette temporaire à la légende avec l'approche 2 :

<code class="python"># ... (code as before)

# Combine lines and labels
lns = lns1 + lns2 + lns3
labs = [l.get_label() for l in lns]
ax.legend(lns, labs, loc=0)

# ... (remaining code)</code>

Cela entraînera un seul légende qui contient toutes les étiquettes de ligne : Swdown, Rn et temp.

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