Les visualisations Matplotlib rencontrent souvent le problème des annotations qui se chevauchent, conduisant à des graphiques encombrés et difficiles à interpréter. Cet article fournit 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 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 :
<code class="python">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()</code>
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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!