Размер фигуры и положение после 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()
В событии отрисовки вы можете получить пределы своих осей, рассчитать масштабирование и еще много чего, а затем можете использовать его как есть, чтобы установить топор на желаемый уровень масштабирования.