Maison  >  Article  >  développement back-end  >  Comment éviter le chevauchement des annotations dans les graphiques avec ajusterText ?

Comment éviter le chevauchement des annotations dans les graphiques avec ajusterText ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 02:48:31329parcourir

How to Prevent Overlapping Annotations in Graphs with adjustText?

Comment éviter les annotations qui se chevauchent dans les graphiques

Les annotations dans les graphiques se chevauchent souvent, ce qui rend les informations difficiles à lire. Dans cet article, nous discuterons d'une solution à ce problème en utilisant la bibliothèque ajusterText.

Matthew Brett a fourni une solution prometteuse pour les annotations qui se chevauchent dans les graphiques à barres. Cependant, la conversion des méthodes « axe » vers d'autres types de graphiques peut être difficile.

La bibliothèque ajusterText

La bibliothèque ajusterText, écrite par Phlya, fournit une solution élégante pour empêcher le chevauchement du texte dans les graphiques. Il ajuste automatiquement la position des annotations de texte pour minimiser les chevauchements.

Exemple de mise en œuvre

Pour mettre en œuvre cette solution, suivez ces étapes :

  1. Importez les bibliothèques nécessaires :

    <code class="python">import matplotlib.pyplot as plt
    from adjustText import adjust_text
    import numpy as np</code>
  2. Préparez vos données sous forme de liste de tuples contenant des valeurs (x, y, texte).
  3. Créez un tracé et ajoutez les lignes et les annotations :

    <code class="python">p1 = plt.plot(eucs, covers, color="black", alpha=0.5)
    texts = []
    for x, y, s in zip(eucs, covers, text):
     texts.append(plt.text(x, y, s))</code>
  4. Ajustez les positions du texte en utilisant ajusterText :

    <code class="python">adjust_text(texts, only_move={'points': 'y', 'texts': 'y'}, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))</code>
  5. Afficher le plot :

    <code class="python">plt.show()</code>

Exemple de sortie

Le tracé résultant aura les annotations correctement ajustées pour éviter les chevauchements, comme indiqué dans l'image donnée .

Réglage fin

Pour un contrôle plus précis, vous pouvez ajuster les paramètres suivants :

  • only_move : spécifie quels éléments doivent être déplacés (par exemple, déplacer le texte uniquement verticalement).
  • force_points : ajuste la force de la force répulsive entre les points .
  • force_text : Ajuste la force de la force répulsive entre text.
  • arrowprops : personnalisez l'apparence des flèches de connexion.

Ces paramètres vous permettent d'adapter le processus d'ajustement à vos besoins spécifiques.

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