Я строю некоторые точки на линии в python, используя matplotlib, и всякий раз, когда точка находится на / около границ графика, аннотированный текст трудно читать из-за перекрывающихся меток осей и тому подобного (см. Скриншот ниже):
В настоящее время я использую такой код, чтобы размещать свои точечные аннотации вручную:
# add value text to x, y point
jt = x_points_to_plot # a single x-value, in this case
f = ys_func(x_points_to_plot) # a single y-value, in this case
ax.annotate(
'({}C, {:0.0f}%)'.format(jt, f), # the string text to add
xy=(jt + 1, f + 5), # offset the text from the point manually
ha='center')
Обычно мои точки находятся посередине и выглядят приемлемо, например так:
Но я не хочу вручную корректировать текст для каждой точки, потому что у меня много изменяющихся данных, и я не хочу тратить на это свое время; Вместо этого я хотел бы найти способ размещения текста, чтобы его можно было легко прочитать на графике . Может быть, я мог бы расширить график, чтобы он содержал новый текст, или я мог бы переместить текст в другое место в зависимости от набора условий о том, что может быть рядом с текстом? Я не уверен ...
Я думаю, что лучшим ответом будет тот, который я смогу повторно использовать для других проектов, надежный для точек в любом месте графика и относительно простой в реализации (наименьшее количество пользовательских функций или «хаков», которые мне пришлось бы воссоздать для каждого проекта) ). Большое спасибо заранее!