Включите или выключите изменение масштаба или увеличьте фактором
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
x, y
, 'xz'
, 'yz'
, или 'unconstrained'
.
setAxesZoomConstraint(h,ax,cnstr)
— Функция, чтобы установить ограничения операций изменения масштаба.
Вызов функционального setAxesZoomConstraint
на объекте изменения масштаба, h
, с объектом осей, ax
, и ограничительная опция, cnstr
, устанавливает ограничение для осей. Задайте ограничение как одно из этих значений: 'x'
Y
Z
x, y
, '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 фигуры.