Подтвердить что ты не робот

Как вставить не перекрывающийся текст в matplotlib?

Я пытаюсь вставить результаты потока мощности в сетевой график, созданный с помощью matplotlib. Некоторые автобусы настолько близки, что обозначение имен вместе с результатами потока мощности оказывается большой головной болью, потому что перекрытие текста делает некоторые части нечитаемыми.

Есть ли способ использовать ограничивающий прямоугольник текста, чтобы определить, перекрывает ли текст линии сюжета и/или какой-либо другой текст?

4b9b3361

Ответ 1

Это не простой ответ на эту проблему, так как это пример проблемы автоматической маркировки которая является NP-hard (т.е. нет быстрых алгоритмических подходов, которые гарантированно разрешат это). Даже Google и OpenStreetMaps не разработали для этого решения!

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

Вам также может потребоваться обмен файлами GIS, поскольку там были заданы подобные вопросы.