[PYTHON] Sie können überlappende Zeichen mit mehreren plt.texts verwalten.

Ich möchte überlappende Zeichen in mehreren plt.text entfernen.

Wenn in der for-Anweisung viele plt.texts angehängt sind, überlappen sich die Zeichen und werden unlesbar ...

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)
x, y = np.random.random((2,30))
fig, ax = plt.subplots()
plt.plot(x, y, 'bo')
texts = [plt.text(x[i], y[i], 'Text%s' %i, ha='center', va='center') for i in range(len(x))]

wiki_example_before.png

** Ich habe eine nette Bibliothek, die ein solches Problem lösen kann, also werde ich es teilen **

Fügen Sie einfach adjustText ein

Diese Bibliothek soll vom ggrepel-Paket von R / ggplot2 beeinflusst worden sein. (Ich weiß nicht über R) Die Installation kann mit ** pip ** erfolgen.

pip install adjustText

Einfach zu bedienen, nur ** die Texte auflisten, die Sie mit adjust_text in adjustText ausrichten möchten **

from adjustText import adjust_text
 
fig, ax = plt.subplots()
plt.plot(x, y, 'bo')
texts = [plt.text(x[i], y[i], 'Text%s' %i, ha='center', va='center') for i in range(len(x))]
adjust_text(texts)

wiki_example_after_no_arrows.png

Es ist auch möglich, einen Pfeil ** wie ** plt.annotate einzufügen, um leicht zu verstehen, an welchem Punkt sich die Annotation befindet.

fig, ax = plt.subplots()
plt.plot(x, y, 'bo')
texts = [plt.text(x[i], y[i], 'Text%s' %i, ha='center', va='center') for i in range(len(x))]
adjust_text(texts, arrowprops=dict(arrowstyle='->', color='red'))

wiki_example_after_with_arrows.png

Vielen Dank! !! !!

Referenz

https://github.com/Phlya/adjustText

Recommended Posts

Sie können überlappende Zeichen mit mehreren plt.texts verwalten.
Python | Was Sie mit Python machen können
Was Sie mit API Vol.1 tun können
Was Sie mit Programmierkenntnissen machen können
Bis Sie opencv mit Python verwenden können
Verwalten Sie mehrere Python-Versionen mit Update-Alternativen (Ubuntu)
Können Sie Kaggle nur mit Ihrem iPad herausfordern?
Verwalten Sie die Python-Umgebung mit mehreren Versionen mit Pythonz, virtualenv
Sie können auch mit Python problemlos eine GUI erstellen
Verwalten Sie mehrere Kontextmanager zusammen mit Python contextlib.ExitStack
Sie können jetzt Folien mit nbviewer anzeigen! [Jupyter]
Das Ablesen des analogen Messgeräts kann am Beispiel MNIST erfolgen.
Was Sie mit Tensorflow 2.x tun können und was nicht
Bis Sie mit Jupyter eine einfache Bilderkennung durchführen können