Включите или выключите изменение масштаба или увеличьте фактором
zoom on
zoom off
zoom out
zoom reset
zoom
zoom xon
zoom
yon
zoom(factor)
zoom(fig, option)
h = zoom(figure_handle)
zoom on
включает режим изменения масштаба. Когда режим изменения масштаба включен в фигуре, нажав кнопку мыши, в то время как ваш курсор в изменения масштаба осей в точку или от точки ниже мыши. Изменение масштаба изменяет пределы осей. При использовании режима изменения масштаба, вас
Увеличение путем расположения курсора мыши, где вы хотите центр графика быть и также
Нажмите кнопку мыши или
Вращайте колесико прокрутки мыши далеко от вас (вверх).
Уменьшение путем расположения курсора мыши, где вы хотите центр графика быть и также
Одновременно нажмите Shift и кнопку мыши, или
Вращайте колесико прокрутки мыши к вам (вниз).
Каждое нажатие кнопки клика мыши или колесика прокрутки увеличивает масштаб или фактором 2.
При перетаскивании по оси, когда увеличивание масштаб включено, чертят rubberband поле. Когда вы отпускаете кнопку мыши, оси увеличивают масштаб в область, заключенную rubberband полем.
Двойной клик по оси возвращает оси в свою начальную установку изменения масштаба и в увеличении и в уменьшении режимов.
zoom off
выключает режим изменения масштаба. При запуске в R2018b некоторые взаимодействия изменения масштаба включены по умолчанию, независимо от режима изменения масштаба. Если вы хотите отключить эти взаимодействия по умолчанию, то используйте функцию disableDefaultInteractivity
.
zoom out
возвращает график в его начальную установку изменения масштаба.
zoom reset
помнит текущее изменение масштаба, устанавливающее как начальную установку изменения масштаба. Более поздние вызовы zoom out
, или дважды кликает, когда интерактивный режим zoom
включен, возвратится к этому уровню изменения масштаба.
zoom
переключается режим изменения масштаба между прочь и на (восстановление последний раз используемого инструмента изменения масштаба).
zoom xon
и zoom
yon
установите zoom on
для x-и оси Y, соответственно.
zoom(factor)
увеличивает масштаб или заданным фактором изменения масштаба, не влияя на интерактивный режим изменения масштаба. Значения, больше, чем 1 увеличение той суммой, в то время как числа, больше, чем 0 и меньше чем 1 уменьшение 1/factor
.
zoom(fig, option)
Любая из предыдущих опций может быть задана на фигуре кроме текущей фигуры с помощью этого синтаксиса.
h = zoom(figure_handle)
возвращает объект режима изменения масштаба для фигуры figure_handle
для вас, чтобы настроить поведение режима.
Можно получить доступ к следующим свойствам.
Enable
'on'|'off'
— Задает, включен ли этот режим фигуры в настоящее время на фигуре.
FigureHandle <handle>
— Связанный указатель фигуры, свойство только для чтения, которое не может быть установлено.
Motion
'horizontal'|'vertical'|'both'
— Тип изменения масштаба активированного для фигуры. Это свойство только влияет на оси в 2D представлении ([0 90]
).
Direction
'in'|'out'
— Направление операции изменения масштаба.
RightClickAction
'InverseZoom'|'PostContextMenu'
— Поведение действия щелчка правой кнопкой.
Значение 'InverseZoom'
заставляет щелчок правой кнопкой уменьшать масштаб. Значение 'PostContextMenu'
отображает контекстное меню. Эта установка сохраняется между сеансами MATLAB®.
UIContextMenu <handle>
— Задает пользовательское контекстное меню, которое будет отображено во время действия щелчка правой кнопкой.
Это свойство проигнорировано, если свойство RightClickAction
было установлено в 'InverseZoom'
.
Можно программировать следующие коллбэки для операций режима изменения масштаба.
ButtonDownFilter <function_handle>
— Функционируйте, чтобы прервать события ButtonDown
Приложение может запретить операцию изменения масштаба при обстоятельствах, которые программист задает, в зависимости от того, что возвращает коллбэк. Указатель функции ввода должен сослаться на функцию с двумя неявными аргументами (подобный коллбэкам графического объекта), можно следующим образом:
function [res] = myfunction(obj,event_obj) % obj handle to the object clicked on % event_obj struct for event data (empty in this release) % res [output] a logical flag determines whether the zoom % operation should take place(for 'res' set % to 'false' or the 'ButtonDownFcn' property % of the object should take precedence (when % 'res' is 'true')
ActionPreCallback <function_handle>
— Функция, чтобы выполниться перед изменением масштаба
Установите этот коллбэк, если вы хотите выполнить код, когда операция изменения масштаба запускается. Указатель функции ввода должен сослаться на функцию с двумя неявными аргументами (подобный коллбэкам графического объекта), можно следующим образом:
function myfunction(obj,event_obj) % obj handle to the figure clicked on % event_obj object containing struct of event data
Данные о событиях имеют следующее поле.
| Указатель осей, который масштабируется |
ActionPostCallback <function_handle>
— Функция, чтобы выполниться после изменения масштаба
Установите этот коллбэк, если вы хотите выполнить код, когда операция изменения масштаба заканчивается. Указатель функции ввода должен сослаться на функцию с двумя неявными аргументами (подобный коллбэкам графического объекта), можно следующим образом:
function myfunction(obj,event_obj) % obj handle to the figure clicked on % event_obj object containing struct of event data % (same as the event data of the % 'ActionPreCallback' callback)
Следующие функции в запросе режима изменения масштаба и наборе, уверенном в его свойствах.
flags = isAllowAxesZoom(h,ax)
— Разрешение запроса функции масштабировать оси.
Вызывая функциональный isAllowAxesZoom
на объекте изменения масштаба, h
, с вектором указателей осей, ax
, когда вход возвращает логический массив той же размерности как оси, обрабатывает вектор, который указывает, разрешена ли операция изменения масштаба на объектах осей.
setAllowAxesZoom(h,ax,flag)
— Функционируйте, чтобы установить разрешение масштабировать оси.
Вызывая функциональный setAllowAxesZoom
на объекте изменения масштаба, h
, с вектором указателей осей, ax
и логического скаляра, flag
, или позволяет или запрещает операцию изменения масштаба на объектах осей.
cn = getAxesZoomConstraint(h,ax)
— Функция, чтобы получить ограничения операций изменения масштаба.
Вызывая функциональный getAxesZoomConstraint
на объекте изменения масштаба, h
, с объектом осей, ax
, когда вход возвращает ограничение для осей. Возвращенное ограничение является одним из этих значений: 'x'
, 'y'
, 'z'
, 'xy'
, 'xz'
, 'yz'
или 'unconstrained'
.
setAxesZoomConstraint(h,ax,cnstr)
— Функционируйте, чтобы установить ограничения операций изменения масштаба.
Вызывая функциональный setAxesZoomConstraint
на объекте изменения масштаба, h
, с объектом осей, ax
, и ограничительной опцией, cnstr
, устанавливает ограничение для осей. Задайте ограничение как одно из этих значений: 'x'
, 'y'
, 'z'
, 'xy'
, 'xz'
, 'yz'
или 'unconstrained'
.
sty = getAxes3DPanAndZoomStyle(h,ax)
— Функция, чтобы получить стиль операций изменения масштаба.
Вызывая функциональный getAxes3DPanAndZoomStyle
на объекте изменения масштаба, h
, с вектором указателей осей, ax
, когда вход возвращает стиль изменения масштаба для каждого, исключает. Возвращенное значение для каждого исключает, или 'limits'
или 'camera'
.
setAxes3DPanAndZoomStyle(h,ax,style)
— Функционируйте, чтобы установить стиль операций изменения масштаба.
Вызывая функциональный setAxes3DPanAndZoomStyle
на объекте изменения масштаба, h
, с вектором указателей осей, ax
, и символьного массива, style
, устанавливает стиль изменения масштаба на каждом, исключает. Задайте стиль или как 'limits'
или как 'camera'
.
cns = getAxesZoomMotion(h,ax)
— Функция, чтобы получить ограничения операций изменения масштаба (не рекомендуемый, используйте getAxesZoomConstraint
).
Вызывая функциональный getAxesZoomMotion
на объекте изменения масштаба, h
, с вектором объектов осей, ax
, когда вход возвращает символьный массив ячеек той же размерности как ax
, который указывает, ограничение для каждого исключает. Возвращенное значение для каждого исключает, 'horizontal'
, 'vertical'
или 'both'
.
setAxesZoomMotion(h,ax,constraints)
— Функционируйте, чтобы установить ограничения операций изменения масштаба (не рекомендуемый, используйте setAxesZoomConstraint
).
Вызывая функциональный setAxesZoomMotion
на объекте изменения масштаба, h
, с вектором объектов осей, ax
, и символьного массива, style
, устанавливает ограничение для каждого, исключает. Задайте ограничения как 'horizontal'
, 'vertical'
или 'both'
.
Постройте график и включите режим Zoom:
plot(1:10); zoom on % zoom in on the plot
Создайте режим изменения масштаба, возражают и ограничивают к изменению масштаба оси X.
Начиная в R2014b, можно установить свойства с помощью записи через точку. Если вы используете более ранний релиз, используйте функцию set
вместо этого, такую как set(h,'Motion','horizontal')
.
plot(1:10); h = zoom; h.Motion = 'horizontal'; h.Enable = 'on'; % zoom in on the plot in the horizontal direction.
Создайте четыре оси как подграфики и установите стиль изменения масштаба по-другому для каждого путем установки различного свойства для каждого указателя осей:
ax1 = subplot(2,2,1); plot(1:10); h = zoom; ax2 = subplot(2,2,2); plot(rand(3)); setAllowAxesZoom(h,ax2,false); ax3 = subplot(2,2,3); plot(peaks); setAxesZoomMotion(h,ax3,'horizontal'); ax4 = subplot(2,2,4); contour(peaks); setAxesZoomMotion(h,ax4,'vertical'); % Zoom in on the plots.
Создайте консервативный коллбэк для объектов режима изменения масштаба к триггеру. Скопируйте следующий код в новый файл, выполните его и наблюдайте поведение изменения масштаба.
Начиная в R2014b, можно установить свойства с помощью записи через точку. Если вы используете более ранний релиз, используйте функцию set
вместо этого, такую как set(hLine,'ButtonDownFcn','disp(''This executes'')')
.
function demo % Allow a line to have its own 'ButtonDownFcn' callback. hLine = plot(rand(1,10)); hLine.ButtonDownFcn = 'disp(''This executes'')'; hLine.Tag = 'DoNotIgnore'; h = zoom; h.ButtonDownFilter = @mycallback; h.Enable = 'on'; % mouse click on the line % function [flag] = mycallback(obj,event_obj) % If the tag of the object is 'DoNotIgnore', then return true. objTag = obj.Tag; if strcmpi(objTag,'DoNotIgnore') flag = true; else flag = false; end
Создайте коллбэки для пред - и постконсервативные события для режима изменения масштаба возражает против триггера. Скопируйте следующий код в новый файл, выполните его и наблюдайте поведение изменения масштаба.
Начиная в R2014b, можно установить свойства с помощью записи через точку. Если вы используете более ранний релиз, используйте функцию set
вместо этого, такую как set(h,'ActionPreCallback',@myprecallback)
.
function demo % Listen to zoom events plot(1:10); h = zoom; h.ActionPreCallback = @myprecallback; h.ActionPostCallback = @mypostcallback; h.Enable = 'on'; % function myprecallback(obj,evd) disp('A zoom is about to occur.'); % function mypostcallback(obj,evd) newLim = evd.Axes.XLim; msgbox(sprintf('The new X-Limits are [%.2f %.2f].',newLim));
Кодирование контекстного меню, которое позволяет пользователю, чтобы переключиться на режим Pan путем щелчка правой кнопкой.
Начиная в R2014b, можно установить свойства с помощью записи через точку. Если вы используете более ранний релиз, используйте функцию set
вместо этого, такую как set(hZoom,'UIContextMenu',hCMZ)
.
figure plot(magic(10)) hCMZ = uicontextmenu; hZMenu = uimenu('Parent',hCMZ,'Label','Switch to pan',... 'Callback','pan(gcbf,''on'')'); hZoom = zoom(gcf); hZoom.UIContextMenu = hCMZ; zoom('on')
zoom
изменяет пределы осей фактором 2 (в или) каждый раз, когда вы нажимаете кнопку мыши, в то время как курсор в оси. Можно также перетащить мышь, чтобы задать область изменения масштаба или дважды кликнуть, чтобы возвратиться к начальному уровню изменения масштаба.
Можно создать объект режима изменения масштаба однажды и использовать его, чтобы настроить поведение различных осей, когда Пример 3 иллюстрирует. Можно также изменить его функции обратного вызова на лету.
Не изменяйте коллбэки фигуры в интерактивном режиме. В то время как режим активен (при панорамировании, масштабируя, и т.д.), вы получите предупреждение, при попытке изменить какой-либо из коллбэков фигуры, и операция не успешно выполнится. Одним исключением к этому правилу является фигура коллбэк WindowButtonMotionFcn
, который может быть изменен из режима. Поэтому, если вы создаете пользовательский интерфейс, который обновляет коллбэки фигуры, пользовательский интерфейс должен так или иначе отслеживать, которых интерактивный режим активен, если таковые имеются, прежде, чем попытаться сделать это.
Когда вы присваиваете различные поведения изменения масштаба различным осям subplot
через объект режима и затем соединяете их использующий функцию linkaxes
, поведение осей, которыми вы управляете с мышью, переносит на соединенные оси, независимо от поведения, которое вы ранее устанавливаете для других осей.
Используйте инструменты Zoom на панели инструментов на увеличение или уменьшение на графике, или выберите Zoom In или Zoom Out из меню Tools фигуры.