Les visualisations Matplotlib rencontrent souvent le problème des annotations qui se chevauchent, conduisant à des graphiques encombrés et difficiles à interpréter. Cet article propose une solution complète pour relever ce défi.
Les annotations qui se chevauchent surviennent lorsque plusieurs annotations partagent le même espace d'écran, créant ainsi un encombrement visuel. Dans le code fourni, le texte d'annotation des points de données a tendance à se chevaucher, en particulier dans les régions les plus denses du graphique.
Pour éviter le chevauchement des annotations, la bibliothèque ajusterText, écrite par Phlya, propose une solution simple et efficace. Cette bibliothèque ajuste automatiquement la position des annotations pour minimiser les chevauchements tout en conservant la lisibilité.
L'extrait de code suivant montre comment utiliser ajusterText pour optimiser le placement des annotations dans l'exemple fourni :
import matplotlib.pyplot as plt
from adjustText import adjust_text
# ... (code to generate the data and plot remain the same as before) ...
plt.xlabel("Proportional Euclidean Distance")
plt.ylabel("Percentage Timewindows Attended")
plt.title("Test plot")
texts = [x for (x,y,z) in together]
eucs = [y for (x,y,z) in together]
covers = [z for (x,y,z) in together]
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))
adjust_text(texts, only_move={'points':'y', 'texts':'y'}, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))
plt.show()
adjustText propose diverses options de personnalisation pour affiner le placement des annotations. Par exemple, il vous permet de contrôler quels éléments sont mobiles (paramètre only_move), l'alignement des annotations et la force de répulsion entre les objets texte.
En expérimentant ces paramètres, vous pouvez obtenir un placement de texte optimal qui maximise la clarté et l'attrait visuel de vos graphiques Matplotlib sans vous soucier des annotations qui se chevauchent.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3