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))]
** Ich habe eine nette Bibliothek, die ein solches Problem lösen kann, also werde ich es teilen **
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)
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'))
Vielen Dank! !! !!
https://github.com/Phlya/adjustText
Recommended Posts