Размер фигуры и положение после Matplotlib Zoom

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

Увеличив масштаб, я хочу знать размер полученного изображения, чтобы можно было рассчитать увеличение.

Более того, я хочу знать положение / размеры моего увеличенного изображения по отношению к исходному изображению, чтобы я мог заново построить его позже.

Я не знаю, как подойти к этому. Я просмотрел документацию для canvas а также figure но не нашел ничего, что помогло бы мне точно определить, какие данные мне нужны. Спасибо за любую помощь.

1 ответ

Решение

Вы можете прочитать следующее из документа matplotlib:

Тем не менее, особенно учебник преобразований может занять некоторое время, чтобы обернуть голову вокруг. Система преобразования очень эффективна и полна, но вам может потребоваться некоторое время, чтобы понять, что именно вам нужно.

Однако в вашем случае может быть достаточно следующего фрагмента кода:

from matplotlib import pyplot as plt
import numpy

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(numpy.random.rand(10))

def ondraw(event):
    # print 'ondraw', event
    # these ax.limits can be stored and reused as-is for set_xlim/set_ylim later
    print ax.get_xlim(), ax.get_ylim()

cid = fig.canvas.mpl_connect('draw_event', ondraw)

plt.show()

В событии отрисовки вы можете получить пределы своих осей, рассчитать масштабирование и еще много чего, а затем можете использовать его как есть, чтобы установить топор на желаемый уровень масштабирования.

Другие вопросы по тегам