Масштабирование Matplotlib работает в сочетании с wxPython ScrolledWindow

У меня есть холст Matplotlib (FigureCanvasWxAgg), который я показываю внутри wx.ScrolledWindow. Проблема в том, что я хотел бы, чтобы функции масштабирования и панорамирования по умолчанию в Matplotlib работали в сочетании с ScrolledWindow, так что, когда пользователь масштабирует изображение на холсте, ScrolledWindow должен стать больше, чтобы приспособиться к масштабированию (полосы прокрутки становятся меньше). Точно так же для панорамирования я бы хотел, чтобы инструмент панорамирования matplotlib по умолчанию работал в сочетании с нашим ScrolledWindow, чтобы, когда пользователь панорамирует изображение на холсте, полосы прокрутки ScrolledWindow перемещались соответствующим образом.

Я искал некоторое время и не видел, чтобы кто-нибудь даже упомянул, возможно ли это. Может ли кто-нибудь указать мне в правильном направлении?

Спасибо за любую помощь/советы.


person adchilds    schedule 19.06.2012    source источник
comment
ты смог в этом разобраться? Я также ищу встраивание интерактивных фигур в wxpython.   -  person Joshua    schedule 01.08.2012
comment
Я не был, нет. Извини. Я реализовал свои собственные функции масштабирования и панорамирования.   -  person adchilds    schedule 01.08.2012
comment
@adchilds: Если вы можете, вы можете предоставить свое решение здесь в качестве ответа, чтобы помочь другим.   -  person pelson    schedule 11.08.2012
comment
Я пробовал что-то подобное и не повезло. Но я обнаружил, что MPL лучше поддерживает бэкенд Qt4. Итак, если вы сделаете matplotlib.use('Qt4Agg') сразу после импорта matplotlib и позволите pyplot создать окно. Затем у него есть все функции по умолчанию, такие как масштабирование, панорамирование и т. Д. Итак, я смешал это с моим приложением wxpython...   -  person otterb    schedule 25.05.2014


Ответы (1)


Проблема в том, что Zoom и Pan по умолчанию не изменяют размер фигуры, они просто изменяют пределы и перерисовывают график.

То, что вы хотите, это изменить размер Zoom (сохраняя те же ограничения), а Pan работать как в обычном окне с прокруткой. Я никогда не пробовал это, fig.set_size_inches(w,h) должно помочь.

person fariza    schedule 15.07.2014