Визуализации Matplotlib часто сталкиваются с проблемой перекрытия аннотаций, что приводит к загроможденным и трудным для интерпретации графикам. В этой статье представлено комплексное решение этой проблемы.
Перекрывающиеся аннотации возникают, когда несколько аннотаций занимают одно и то же пространство экрана, создавая визуальный беспорядок. В предоставленном коде текст аннотаций для точек данных имеет тенденцию перекрываться, особенно в более плотных областях графика.
Чтобы избежать перекрытия аннотаций, библиотека корректировки текста, написанная Phlya, предлагает простое и эффективное решение. Эта библиотека автоматически корректирует положение аннотаций, чтобы минимизировать перекрытие, сохраняя при этом читабельность.
В следующем фрагменте кода показано, как использовать корректировкуТекст для оптимизации размещения аннотаций в приведенном примере:
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 предлагает различные параметры настройки для точной настройки размещения аннотаций. Например, он позволяет вам контролировать, какие элементы являются подвижными (параметр only_move), выравниванием аннотаций и силой отталкивания между текстовыми объектами.
Экспериментируя с этими параметрами, вы можете добиться оптимального размещения текста, которое максимизирует ясность и визуальную привлекательность ваших графиков Matplotlib, не беспокоясь о перекрывающихся аннотациях.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3