matplotlib: изменение масштаба цветов imshow после увеличения

Я пытаюсь построить 2D-поле с помощью imshow. Я бы хотел, чтобы цвета изменялись после увеличения, чтобы я мог видеть больше деталей.

Единственное известное мне решение — взять координаты прямоугольника, возвращаемые событием RectangleSelector, и перестроить подматрицу исходных данных. Есть ли лучшее решение?


person Charlie    schedule 11.04.2012    source источник


Ответы (2)


Вы можете использовать интерактивный график с помощью pylab.ion и обновить график с помощью команды draw вместо команды show. Затем в своем коде создайте цикл while, который запрашивает ввод с клавиатуры. На каждой итерации, если вы вводите -1, программа существует. В противном случае, возможно, вы вводите что-то вроде x1, y1, x2, y2, которое изображает ограничивающую рамку, которую вы хотите увеличить по осям координат, а затем ваша программа создает новую фигуру, повторно вычисляет соответствующие данные в новых сетках, используя ввод x1, y1, x2, y2, и повторно участок. Если вы сохраните все введенные координаты, у вас даже может быть специальный ввод с клавиатуры для «отмены» (например, уменьшить масштаб до того места, где я только что был). Это не должно быть очень сложно реализовать, единственный вопрос будет заключаться в том, насколько серьезными будут вычисления для повторной выборки вашего изображения в увеличенной сетке.

person ely    schedule 12.04.2012

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

person Charlie    schedule 12.04.2012