«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу предотвратить перекрытие аннотаций в визуализациях Matplotlib?

Как я могу предотвратить перекрытие аннотаций в визуализациях Matplotlib?

Опубликовано 8 ноября 2024 г.
Просматривать:443

How can I prevent overlapping annotations in Matplotlib visualizations?

Перекрывающиеся аннотации в Matplotlib

Визуализации Matplotlib часто сталкиваются с проблемой перекрытия аннотаций, что приводит к загроможденным и трудным для интерпретации графикам. В этой статье представлено комплексное решение этой проблемы.

Неисправность

Перекрывающиеся аннотации возникают, когда несколько аннотаций занимают одно и то же пространство экрана, создавая визуальный беспорядок. В предоставленном коде текст аннотаций для точек данных имеет тенденцию перекрываться, особенно в более плотных областях графика.

The Lösung

Чтобы избежать перекрытия аннотаций, библиотека корректировки текста, написанная 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