Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man mit AdjustText überlappende Anmerkungen in Diagrammen verhindern?

Wie kann man mit AdjustText überlappende Anmerkungen in Diagrammen verhindern?

Susan Sarandon
Susan SarandonOriginal
2024-10-31 02:48:31329Durchsuche

How to Prevent Overlapping Annotations in Graphs with adjustText?

So vermeiden Sie überlappende Anmerkungen in Diagrammen

Anmerkungen in Diagrammen überlappen sich häufig, wodurch die Informationen schwer lesbar sind. In diesem Artikel diskutieren wir eine Lösung für dieses Problem mithilfe der AdjustText-Bibliothek.

Matthew Brett lieferte eine vielversprechende Lösung für überlappende Anmerkungen in Balkendiagrammen. Die Konvertierung der „Achsen“-Methoden in andere Diagrammtypen kann jedoch eine Herausforderung sein.

Die AdjustText-Bibliothek

Die von Phlya geschriebene AdjustText-Bibliothek bietet eine elegante Lösung für Verhindern von Textüberlappungen in Diagrammen. Es passt die Position von Textanmerkungen automatisch an, um Überlappungen zu minimieren.

Beispielimplementierung

Um diese Lösung zu implementieren, befolgen Sie diese Schritte:

  1. Importieren Sie die erforderlichen Bibliotheken:

    <code class="python">import matplotlib.pyplot as plt
    from adjustText import adjust_text
    import numpy as np</code>
  2. Bereiten Sie Ihre Daten als Liste von Tupeln vor, die (x, y, text)-Werte enthalten.
  3. Erstellen Sie ein Diagramm und fügen Sie die Linien und Anmerkungen hinzu:

    <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. Passen Sie die Textpositionen mit „adjustText“ an:

    <code class="python">adjust_text(texts, only_move={'points': 'y', 'texts': 'y'}, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))</code>
  5. Zeigen Sie die Darstellung an:

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

Beispielausgabe

Im resultierenden Diagramm werden die Anmerkungen richtig angepasst, um Überlappungen zu vermeiden, wie im gegebenen Bild gezeigt.

Feinabstimmung

Zur genaueren Steuerung können Sie folgende Parameter anpassen:

  • only_move: Gibt an, welche Elemente verschoben werden sollen (z. B. Text nur vertikal verschieben).
  • force_points: Passt die Stärke der Abstoßungskraft zwischen Punkten an.
  • force_text: Passt die Stärke der Abstoßungskraft zwischen Texten an.
  • arrowprops: Passen Sie das Erscheinungsbild der Verbindungspfeile an.

Mit diesen Parametern können Sie den Anpassungsprozess an Ihre spezifischen Bedürfnisse anpassen.

Das obige ist der detaillierte Inhalt vonWie kann man mit AdjustText überlappende Anmerkungen in Diagrammen verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn