Как автомасштабировать графики с помощью легенды выбора (matplotlib)? - PullRequest
0 голосов
/ 29 мая 2020

Я работаю над легендой выбора с помощью matplotlib. Цель состоит в том, чтобы скрыть и показать кривые, щелкнув легенду. Я нашел это решение ( Скрытие линий после показа фигуры pyplot ), которое работает очень хорошо.

Я хочу улучшить этот код, чтобы автоматически адаптировать ось после каждого cli c в легенде . Не знаю, возможно ли это. У вас есть подсказка?

Это пример того, что я хочу на изображениях ниже. Прежде всего, Изображение 1 представляет собой график. Затем после нажатия на легенду 5 * sin (x) оранжевая кривая исчезнет, ​​как и ожидалось (Изображение 2). На изображении 2 ось Y не оптимизирована. Ожидаемый результат находится на изображении 3.

Пример

Большое спасибо,

1 Ответ

1 голос
/ 29 мая 2020

Добавление вызова метода relim с флагом visible_only, установленным на True, и обновление оси должно выполняться так, как вы хотите. Это нужно будет добавить в ваш метод on_click / update.

# Where ax2 is a reference to your second axis
ax2.relim(visible_only=True)  # Ignore the line you've hidden when rescaling.
ax2.autoscale_view()  # assuming the axis has not been altered by set_xlim etc.
...