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

Susan Sarandon
Freigeben: 2024-10-31 02:48:31
Original
409 Leute haben es durchsucht

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>
    Nach dem Login kopieren
  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>
    Nach dem Login kopieren
  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>
    Nach dem Login kopieren
  5. Zeigen Sie die Darstellung an:

    <code class="python">plt.show()</code>
    Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage