Description
You can use zoom mode to explore data by interactively changing the limits of
axes. Enable or disable zoom mode, and set other basic options, by using the
zoom
function. To further control zoom mode behavior, return and use a
zoom
object.
Most charts support zoom mode, including line, bar, histogram, and surface charts. Charts
that support zoom mode typically display the zoom in and zoom out
icons in the axes toolbar.
You can also interactively explore data using built-in axes interactions that are enabled
by default. For example, you can zoom in and out of the view of the axes by scrolling or
pinching. Built-in interactions do not require you to enable an interaction mode and respond
faster than interaction modes. However, you can enable zoom mode to customize the zooming
behavior. For more information about built-in interactions, see Control Chart Interactivity.
Creation
Syntax
Description
example
zoom
sets the zoom mode for alloption
axes in the current figure. For example, zoom on
enables zoom mode,
zoom xon
enables zoom mode for the x-dimension
only, and zoom off
disables zoom mode.
When zoom mode is enabled, zoom the view of the axes using the cursor, the scroll
wheel, or the keyboard.
-
Cursor — To zoom in, position your cursor where you want the center of
the axes to be and click. To zoom out, hold Shift and click. To
zoom into a rectangular region, click and drag. To return an axes object to its
baseline zoom level, double-click within the axes. -
Scroll wheel — To zoom in, scroll up. To zoom out, scroll down.
-
Keyboard — To zoom in, press the up arrow (↑) key. To
zoom out, press the down arrow (↓) key.
Some built-in interactions remain enabled by default, regardless of the current
interaction mode. To disable built-in zoom interactions that are independent of the zoom
mode, use the disableDefaultInteractivity
function.
zoom
toggles the zoom mode. If zoom mode is disabled, then
calling zoom
restores the most recently used zoom option of
on
, xon
, or yon
.
zoom(
zooms the current axes by thefactor
)
specified zoom factor without affecting the zoom mode. Zoom in by specifying
factor
as a value greater than 1, for example,
zoom(3)
. Zoom out by specifying factor
as a
value between 0 and 1, for example, zoom(0.5)
.
zoom(
sets the zoomfig
,___)
mode for all axes in the specified figure for any of the previous syntaxes. Specify the
additional argument as a zoom mode option or a zoom factor. For example, use
zoom(fig,'on')
to enable zoom mode for the figure
fig
, or use zoom(fig,2)
to zoom all axes in the
figure fig
by a factor of 2.
example
z = zoom
creates a zoom
object for the current
figure. This syntax is useful for customizing the zoom mode, motion, and
direction.
example
z = zoom(
creates afig
)
zoom
object for the specified figure.
Input Arguments
expand all
option
— Zoom mode option
'on'
| 'off'
| 'reset'
| 'out'
| 'xon'
| 'yon'
| 'toggle'
Zoom mode option, specified as one of these values:
-
'on'
— Enable zoom mode. -
'off'
— Disable zoom mode. Some built-in
interactions remain enabled by default, regardless of the current interaction
mode. To disable built-in zoom interactions that are independent of the zoom
mode, use thedisableDefaultInteractivity
function. -
'reset'
— Set the current zoom level as the
baseline zoom level. Once you set the baseline zoom level, callingzoom
, double-clicking in the axes, or clicking the Restore View
out
icon from the axes toolbar returns axes to this
zoom level. -
'out'
— Return the current axes to its baseline
zoom level. -
'xon'
— Enable zoom mode for the
x-dimension only. -
'yon'
— Enable zoom mode for the
y-dimension only. -
'toggle'
— Toggle the zoom mode. If zoom mode is
disabled, then'toggle'
restores the most recently used zoom
option of'on'
,'xon'
, or
'yon'
. Using this option is the same as calling
zoom
without any arguments.
factor
— Zoom factor
positive number
Zoom factor, specified as a positive number. Zoom in by specifying
factor
as a number greater than 1. Zoom out by specifying
factor
as a number between 0 and 1. In this case, the axes zoom
out by 1/factor
.
fig
— Target figure
Figure
object
Target figure, specified as a Figure
object.
Properties
expand all
Motion
— Dimension
'both'
(default) | 'horizontal'
| 'vertical'
Dimension to allow zooming in and out, specified as one of these values:
-
'both'
— Allow zooming in the
x-dimension and the y-dimension. -
'horizontal'
— Allow zooming in the
x-dimension only. -
'vertical'
— Allow zooming in the
y-dimension only.
This property affects only axes in a 2-D view, such as when you call
view([0 90])
. To control the zoom dimension in 3-D views, use a
ZoomInteraction
object.
Direction
— Direction
'in'
(default) | 'out'
Direction of zooming, specified as one of these values:
-
'in'
— Click to zoom in. -
'out'
— Click to zoom out.
When zoom mode is enabled, you can use the scroll wheel to zoom in or out,
regardless of the value of Direction
.
RightClickAction
— Action to perform on right-click
'PostContextMenu'
(default) | 'InverseZoom'
Action to perform on right-click, specified as one of these values:
-
'PostContextMenu'
— Display a context menu. -
'InverseZoom'
— Zoom out on right-click.
Setting the RightClickAction
property sets the
default for future zoom
objects. The value of
RightClickAction
persists between MATLAB® sessions.
— Context menu
empty GraphicsPlaceholder
array (default) | ContextMenu
object
Context menu, specified as a ContextMenu
object. Use this property
to display a context menu when you right-click in axes where zoom mode is enabled.
Create the context menu using the uicontextmenu
function.
This property has no effect if the RightClickAction
property
has a value of 'InverseZoom'
.
ButtonDownFilter
— Zoom suppression callback
[ ] (default) | function handle | cell array | character vector
Zoom suppression callback, specified as one of these values:
-
Function handle
-
Cell array containing a function handle and additional arguments
-
Character vector containing a valid MATLAB command or function, which is evaluated in the base workspace (not
recommended)
Use this property to suppress zooming under conditions that you define. A numeric or
logical output of 1 (true
) suppresses zooming, and a numeric or
logical output of 0 (false
) allows zooming. If you specify this
property using a function handle, then MATLAB passes two arguments to the callback function:
-
axes
— The axes object in which you are
zooming. -
eventData
— Empty argument. Replace it with the tilde
character (~) in the function definition to indicate that this
argument is not used.
If you specify this property using a function handle, then you must assign the
function output to a variable.
For more information about callbacks, see Create Callbacks for Graphics Objects.
ActionPreCallback
— Function to execute before zooming
[ ] (default) | function handle | cell array | character vector
Function to execute before zooming, specified as one of these values:
-
Function handle
-
Cell array containing a function handle and additional arguments
-
Character vector containing a valid MATLAB command or function, which is evaluated in the base workspace (not
recommended)
Use this property to execute code as you start zooming in or out. If you specify
this property using a function handle, then MATLAB passes two arguments to the callback function:
-
figure
—Figure
object in which you
are zooming. -
axesStruct
— Structure that contains one field,
Axes
, the axes object in which you are zooming. If you do not
use this argument in your callback function, then replace it with the tilde
character (~).
For more information about callbacks, see Create Callbacks for Graphics Objects.
ActionPostCallback
— Function to execute after zooming
[ ] (default) | function handle | cell array | character vector
Function to execute after zooming, specified as one of these values:
-
Function handle
-
Cell array containing a function handle and additional arguments
-
Character vector containing a valid MATLAB command or function, which is evaluated in the base workspace (not
recommended)
Use this property to execute code after you finish zooming. If you specify this
property using a function handle, then MATLAB passes two arguments to the callback function:
-
figure
—Figure
object in which you
are zooming. -
axesStruct
— Structure that contains one field,
Axes
, the axes object in which you are zooming. If you do not
use this argument in your callback function, then replace it with the tilde
character (~).
For more information about callbacks, see Create Callbacks for Graphics Objects.
Enable
— Zoom mode state
'off'
(default) | 'on'
Zoom mode state, specified as 'off'
or
'on'
.
FigureHandle
— Figure object
Figure
object
This property is read-only.
Figure
object that you specified when creating the
zoom
object. If you did not specify a figure, then
FigureHandle
is the figure that was current when you created the
zoom
object.
UseLegacyExplorationModes
— Legacy mode
'off'
(default) | 'on'
| on/off logical value
Legacy mode, specified as 'on'
or 'off'
, or as
numeric or logical 1
(true
) or
0
(false
). A value of 'on'
is
equivalent to true
, and 'off'
is equivalent to
false
. Thus, you can use the value of this property as a logical
value. The value is stored as an on/off logical value of type OnOffSwitchState
.
This property applies only to zoom
objects for figures created
using the uifigure
function or in MATLAB
Online™. Setting this property to 'on'
changes the behavior of
interaction modes in UI figures so they match the behavior of modes in traditional
figures. For more information, see enableLegacyExplorationModes
.
Once this property is set to 'on'
, it cannot be changed back to
'off'
.
Object Functions
Use zoom object functions to customize the zooming behavior of axes objects within a
figure. For all of these functions, the axes and zoom objects must be associated with the same
figure.
|
The Calling Enabling zoom mode for axes using |
|
The Calling Returning the zoom |
|
The Calling Setting the zoom dimension for |
|
The Calling Returning the zoom dimension of axes using |
|
The Calling For more information about the camera view angle, see Camera Graphics Terminology. |
|
The Calling |
|
This function is not recommended. Use Calling The axes |
|
This function is not recommended. Use Calling The axes zoom dimension that is returned using |
Examples
collapse all
Set Baseline Zoom Level
Plot a surface and enable zoom mode.
Zoom into the tallest peak by clicking on it. Then, set the baseline zoom level.
Future calls to zoom out
, double-clicking in the axes, or clicking
selecting the Restore View icon from the axes toolbar return axes to this baseline
zoom level.
Zoom into the highest peak a second time by clicking on it. Then, return to the
baseline zoom level you set by zooming out.
Constrain Zoom in Tiled Chart Layout
Create four axes in a tiled chart layout, and assign each a different zoom behavior.
Then, interactively zoom the axes.
tiledlayout(2,2) ax1 = nexttile; plot(1:10); z = zoom; ax2 = nexttile; plot(rand(3)); setAllowAxesZoom(z,ax2,false); ax3 = nexttile; surf(peaks); setAxesZoomConstraint(z,ax3,'xy'); ax4 = nexttile; contour(peaks); setAxesZoomMotion(z,ax4,'horizontal');
Create Mode Context Menu
Plot a surface and create a context menu using the uicontextmenu
function.
surf(peaks) cm = uicontextmenu;
Then, add an item to the menu. Specify a label and a callback that closes the
figure.
m = uimenu(cm);
m.Label = 'Close figure';
f = gcf;
m.Callback = @(src,event)close(f);
Create a zoom object. Add the context menu to the zoom object by setting its
ContextMenu
property. Then, enable zoom mode.
z = zoom(f);
z.ContextMenu = cm;
z.Enable = 'on';
Close the figure by right-clicking and selecting .
More About
expand all
Changing Callback Functions
You can create a zoom
object and use it to customize the behavior
of different axes. You can also change its callback functions on the fly.
Note
Do not change figure callbacks within an interactive
mode. While a mode is active (such as when zoom mode is enabled), you will
receive a warning if you attempt to change any of the figure’s keyboard callbacks or
window callbacks, and the operation will not succeed. The one exception to this rule is
the figure WindowButtonMotionFcn
callback, which can be changed from
within a mode. Therefore, if you are creating a UI that updates a figure’s callbacks, the
UI should keep track of and check which interactive mode is active, if any, before
attempting to change a callback.
When you assign different zoom behaviors to different axes in a figure by using mode
objects and then link them using the linkaxes
function, the behavior of
the axes you manipulate with the mouse carries over to the linked axes, regardless of the
behavior you previously set for the other axes.
Alternative Functionality
Axes Toolbar
For some charts, enable zoom mode by clicking the zoom in or zoom out
icons in the axes toolbar.
Version History
Introduced before R2006a
expand all
R2020a: UIContextMenu
property is not recommended
Starting in R2020a, using the UIContextMenu
property to assign a
context menu to a graphics object or UI component is not recommended. Use the
ContextMenu
property instead. The property values are the
same.
There are no plans to remove support for the UIContextMenu
property
at this time. However, the UIContextMenu
property no longer appears in
the list returned by calling the get
function on a graphics object or UI
component.
R2018b: Explore data with zooming enabled by default
Interactively explore your data using built-in axes interactions that are enabled by
default. For example, you can use the scroll wheel to zoom into your data without enabling
zoom mode. For more information, see Control Chart Interactivity.
Previously, no axes interactions were enabled by default.
zoom
Включите режим изменения масштаба
Описание
Режим изменения масштаба позволяет вам исследовать данные путем изменения пределов осей. В релизах до R2018b используйте режим изменения масштаба, чтобы увеличить масштаб или из осей. Включите и выключите режим изменения масштаба и установите другие основные опции, с помощью zoom
функция. Чтобы далее управлять поведением режима изменения масштаба, возвратите и используйте объект изменения масштаба.
Начиная в R2018b, можно увеличить и уменьшить масштаб использующих встроенных взаимодействий вместо этого. Встроенные взаимодействия не требуют, чтобы вы включили режим и ответили быстрее, чем режимы взаимодействия. Для получения дополнительной информации о встроенных взаимодействиях, смотрите Интерактивность Диаграммы управления.
Большинство графиков поддерживает режим изменения масштаба, включая линию, панель, область, гистограмму и поверхностные графики. Графики, которые поддерживают режим изменения масштаба обычно, отображают увеличение и уменьшение
значков на панели инструментов осей.
Создание
Синтаксис
Описание
пример
zoom
включает или отключает режим изменения масштаба для всех осей в текущей фигуре. Например, option
zoom on
включает режим изменения масштаба, zoom xon
включает режим изменения масштаба для x размерности только и zoom off
отключает режим изменения масштаба. Для большего количества опций режима изменения масштаба смотрите option
.
Когда режим изменения масштаба включен, чтобы увеличить масштаб, расположить ваш курсор, где вы хотите, чтобы центр осей был и или прокрутил или нажатие кнопки. Чтобы уменьшить масштаб, или прокрутить вниз или содержат Shift и нажатие кнопки. Каждое нажатие кнопки увеличивает масштаб или на коэффициент 2. Чтобы масштабировать в прямоугольную область, перетащить. Чтобы возвратить объект осей в его базовый уровень изменения масштаба, дважды кликните в осях.
zoom
переключается режим изменения масштаба. Если режим изменения масштаба отключен, то вызов zoom
восстанавливает последний раз используемую опцию изменения масштаба on
, xon
, или yon
.
zoom(
масштабирует текущую систему координат заданным фактором изменения масштаба, не влияя на режим изменения масштаба. Увеличение путем определения factor
)factor
как значение, больше, чем 1. Уменьшение путем определения factor
как значение между 0 и 1.
zoom(
устанавливает режим изменения масштаба для всех осей на заданном рисунке. Задайте дополнительный аргумент как fig
,___)'on'
off
, 'out'
сброс
, 'xon'
, 'yon'
, или фактор изменения масштаба. Например, используйте zoom(fig,'on')
включить режим изменения масштаба для фигуры fig
.
z = zoom
создает объект изменения масштаба для текущей фигуры. Этот синтаксис полезен для управления режимом изменения масштаба, движением и направлением.
пример
z = zoom(
создает объект изменения масштаба для заданной фигуры.fig
)
Входные параметры
развернуть все
fig
— Плановый показатель
Figure
объект
Плановый показатель в виде Figure
объект.
option
— Масштабируйте опцию режима
'on'
| 'off'
| 'out'
| 'reset'
| 'xon'
| 'yon'
| 'off'
Масштабируйте опцию режима в виде одного из этих значений:
-
'on'
– Включите режим изменения масштаба. -
'off'
– Выключите режим изменения масштаба. Некоторые встроенные взаимодействия остаются активированными по умолчанию, независимо от режима. Чтобы отключить встроенные взаимодействия изменения масштаба, используйтеdisableDefaultInteractivity
функция. -
'reset'
– Установите текущий уровень изменения масштаба как базовый уровень изменения масштаба. Если вы устанавливаете базовый уровень изменения масштаба, вызываяzoom out
, двойной клик или выбориз панели инструментов осей возвращает оси в этот уровень изменения масштаба.
-
'out'
– Возвратите текущую систему координат в его базовый уровень изменения масштаба. -
'xon'
– Включите режим изменения масштаба для x размерности только. -
'yon'
– Включите режим изменения масштаба для y размерности только.
factor
— Фактор изменения масштаба
положительное число
Фактор изменения масштаба в виде положительного числа. Увеличение путем определения factor
как положительное число, больше, чем 1. Уменьшение путем определения factor
как положительное число между 0 и 1. В этом случае оси уменьшают масштаб 1/factor
.
Свойства
развернуть все
Motion
— Размерность
'both'
(значение по умолчанию) | 'horizontal'
| 'vertical'
Размерность, чтобы позволить увеличивать и уменьшать масштаб в виде одного из этих значений:
-
'both'
– Позвольте увеличивать масштаб размерности X и Y. -
'horizontal'
– Позвольте увеличивать масштаб x размерность только. -
'vertical'
– Позвольте увеличивать масштаб y размерность только.
Это свойство только влияет на оси в 2D представлении, такой как тогда, когда вы вызываете view([0 90])
. Чтобы управлять размерностью изменения масштаба в 3-D представлениях, используйте ZoomInteraction
объект.
Direction
— Направление
'in'
(значение по умолчанию) | 'out'
Направление изменения масштаба в виде одного из этих значений:
-
'in'
– Щелкните, чтобы увеличить масштаб. -
'out'
– Щелкните, чтобы уменьшить масштаб.
Когда режим изменения масштаба включен, можно всегда использовать колесико прокрутки, чтобы увеличить масштаб или, независимо от значения Direction
.
Enable
— Режим Zoom
'off'
(значение по умолчанию) | 'on'
Масштабируйте режим в виде 'off'
или 'on'
.
— Контекстное меню
пустой GraphicsPlaceholder
массив (значение по умолчанию) | ContextMenu
объект
Контекстное меню в виде ContextMenu
объект. Используйте это свойство отобразить контекстное меню, когда вы щелкаете правой кнопкой по осям, где режим изменения масштаба включен. Создайте контекстное меню с помощью uicontextmenu
функция.
Это свойство не оказывает влияния если RightClickAction
свойство имеет значение 'InverseZoom'
.
RightClickAction
— Действие, чтобы выполнить, когда вы щелкаете правой кнопкой мыши
'PostContextMenu'
(значение по умолчанию) | 'InverseZoom'
Действие, чтобы выполнить, когда вы щелкаете правой кнопкой в виде одного из этих значений:
-
'PostContextMenu'
– Отобразите контекстное меню. -
'InverseZoom'
– Уменьшите масштаб, когда вы щелкнете правой кнопкой.
Установка RightClickAction
наборы свойств значение по умолчанию для будущих объектов изменения масштаба. Значение RightClickAction
сохраняется между MATLAB® сеансы.
ActionPreCallback
— Функция, чтобы выполниться перед изменением масштаба
[] (значение по умолчанию) | указатель на функцию | массив ячеек | вектор символов
Функция, чтобы выполниться прежде, чем масштабировать в виде одного из этих значений:
-
Указатель на функцию
-
Массив ячейки, содержащий указатель на функцию и дополнительные аргументы
-
Вектор со строкой символов, являющийся действительной командой или функцией MATLAB, которая оценивается в базовом рабочем пространстве (не рекомендуется)
Используйте это свойство выполнить код, когда вы начинаете увеличивать масштаб или. Если вы задаете это свойство с помощью указателя на функцию, то MATLAB передает два аргумента функции обратного вызова:
-
figure
— Объект фигуры, в котором вы масштабируете. -
axesStruct
— Структура, которая содержит оси, в которых вы масштабируете. Эта структура имеет одно поле,Axes
, объект осей, в котором вы масштабируете. Если вы не используете этот аргумент в своей функции обратного вызова, то замените его на символ тильды (~).
Для получения дополнительной информации о коллбэках, см. Определение Коллбэка.
ActionPostCallback
— Функция, чтобы выполниться после изменения масштаба
[] (значение по умолчанию) | указатель на функцию | массив ячеек | вектор символов
Функция, чтобы выполниться после изменения масштаба в виде одного из этих значений:
-
Указатель на функцию
-
Массив ячейки, содержащий указатель на функцию и дополнительные аргументы
-
Вектор со строкой символов, являющийся действительной командой или функцией MATLAB, которая оценивается в базовом рабочем пространстве (не рекомендуется)
Используйте это свойство выполнить код после того, как вы закончите масштабировать. Если вы задаете это свойство с помощью указателя на функцию, то MATLAB передает два аргумента функции обратного вызова:
-
figure
— Объект фигуры, в котором вы масштабируете. -
axesStruct
— Структура, которая содержит оси, в которых вы масштабируете. Эта структура имеет одно поле,Axes
, объект осей, в котором вы масштабируете. Если вы не используете этот аргумент в своей функции обратного вызова, то замените его на символ тильды (~).
Для получения дополнительной информации о коллбэках, см. Определение Коллбэка.
ButtonDownFilter
— Масштабируйте коллбэк подавления
[] (значение по умолчанию) | указатель на функцию | массив ячеек | вектор символов
Масштабируйте коллбэк подавления в виде одного из этих значений:
-
Указатель на функцию
-
Массив ячейки, содержащий указатель на функцию и дополнительные аргументы
-
Вектор со строкой символов, являющийся действительной командой или функцией MATLAB, которая оценивается в базовом рабочем пространстве (не рекомендуется)
Используйте это свойство подавить изменение масштаба при условиях, которые вы задаете. Числовой или логический выход 1 (true
) подавляет изменение масштаба и числовой или логический выход 0 (false
) позволяет масштабировать. Если вы задаете это свойство с помощью указателя на функцию, то MATLAB передает два аргумента функции обратного вызова:
-
axes
— Объект осей, в котором вы масштабируете. -
eventData
— Пустой аргумент. Замените его на символ тильды (~) в функциональном определении, чтобы указать, что этот аргумент не используется.
Если вы задаете это свойство с помощью указателя на функцию, то необходимо присвоить выход функции переменной.
Для получения дополнительной информации о коллбэках, см. Определение Коллбэка.
FigureHandle
— Объект Figure
Figure
объект
Это свойство доступно только для чтения.
Figure
возразите, что вы задали при создании объекта изменения масштаба. Если вы не задавали фигуру, то FigureHandle
фигура, которая была текущей, когда вы создали объект изменения масштаба.
UseLegacyExplorationModes
— Устаревший режим
'off'
(значение по умолчанию) | логическое значение включения — выключения
Устаревший режим в виде 'on'
или 'off'
, или как числовой или логический 1
TRUE
) или 0
ложь
). Значение 'on'
эквивалентно true
, и 'off'
эквивалентно false
. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения — выключения типа matlab.lang.OnOffSwitchState
.
Установка этого свойства к 'on'
изменяет поведение режимов взаимодействия в фигурах пользовательского интерфейса, таким образом, они совпадают с поведением режимов на традиционных рисунках. Для получения дополнительной информации смотрите enableLegacyExplorationModes
.
Если это свойство установлено в 'on'
, это не может быть возвращено к 'off'
.
Это свойство только применяется к объектам изменения масштаба для фигур, созданных с помощью uifigure
функционируйте или в MATLAB Online™.
Функции объекта
Используйте функции объекта изменения масштаба, чтобы настроить поведение объектов осей в фигуре. Для всех функций объекта изменения масштаба оси и объекты изменения масштаба должны быть сопоставлены с той же фигурой.
|
Включение изменения масштаба для осей с помощью |
|
Возврат режима изменения масштаба осей с помощью |
|
Установка размерности изменения масштаба для осей с помощью |
|
Возврат размерности изменения масштаба осей с помощью |
|
Для получения дополнительной информации об угле поля зрения камеры, смотрите Терминологию Графики Камеры. |
|
|
|
Эта функция не рекомендуется. Используйте
Оси масштабируют размерность, которая установлена |
|
Эта функция не рекомендуется. Используйте
Оси масштабируют размерность, которая возвращена с помощью |
Примеры
свернуть все
Установите базовый уровень изменения масштаба
Отобразите на графике некоторые данные, увеличение, и затем установите базовый уровень изменения масштаба. Будущее вызывает к zoom out
возвратите оси в базовый уровень изменения масштаба, который вы устанавливаете.
Например, получите координаты предопределенной поверхности и постройте их. Включите режим изменения масштаба.
[X,Y,Z] = peaks(20);
surf(X,Y,Z)
zoom on
Масштабируйте в самый высокий пик путем нажатия на него. Затем установите базовый уровень изменения масштаба.
Масштабируйте в самый высокий пик во второй раз, затем вызовите zoom out
.
Оси возвращаются к базовому уровню изменения масштаба, который вы устанавливаете.
Создайте контекстное меню
Создайте контекстное меню, которое можно использовать, в то время как режим изменения масштаба включен. В данном примере создайте контекстное меню, которое позволяет вам закрывать фигуру.
Во-первых, получите координаты предопределенной поверхности и постройте их.
[X,Y,Z] = peaks(20); surf(X,Y,Z)
Создайте контекстное меню с помощью uicontextmenu
функция. Затем добавьте элемент в меню. Задайте метку и коллбэк, который закрывает фигуру.
cm = uicontextmenu;
m = uimenu(cm);
m.Label = 'Close figure';
f = gcf;
m.Callback = @(src,event)close(f);
Создайте объект изменения масштаба. Добавьте контекстное меню в объект изменения масштаба путем установки его ContextMenu
свойство. Затем включите режим изменения масштаба.
z = zoom(f);
z.ContextMenu = cm;
z.Enable = 'on';
Закройте фигуру путем щелчка правой кнопкой и выбора .
Вопросы совместимости
развернуть все
UIContextMenu
свойство не рекомендуется
Не рекомендуемый запуск в R2020a
Запуск в R2020a, использование UIContextMenu
свойство присвоить контекстное меню графическому объекту или компоненту пользовательского интерфейса не рекомендуется. Используйте ContextMenu
свойство вместо этого. Значения свойств являются тем же самым.
Нет никаких планов удалить поддержку UIContextMenu
свойство в это время. Однако UIContextMenu
свойство больше не появляется в списке, возвращенном путем вызова get
функция на графическом объекте или компоненте пользовательского интерфейса.
Представлено до R2006a
I have a figure that displays 20,000 points on the x-axis. So it
labels the x-axis from 0 … 20,000. However, now I would like to scale
it from 0 to 50. But when I try to do this in the plot window it just
shows me the first 50 points, instead of changing the scale. Is there
any straightforward way to do that in MATLAB?
MatlabDoug
5,7041 gold badge24 silver badges36 bronze badges
asked Mar 16, 2010 at 16:11
You have to change the x-values in your plot, or you can change the axis labels.
Here is how you plot using specific x-values:
%# create some data
data = randn(20000,1);
%# create 20,000 corresponding x-values so that the last one is 50 - works for any number of data points
x = linspace(1,50,length(data));
%# plot
plot(x,data)
EDIT Doresoom has conveniently shown how to change the axis labels.
answered Mar 16, 2010 at 16:32
JonasJonas
74.5k10 gold badges137 silver badges177 bronze badges
Try using the xticklabel
axes property.
set(gca,'XTickLabel',{'0';'10';'20';'30';'40';'50'})
should give you what you want.
EDIT:
Careful with messing with tick labels instead of actually modifying the data, though. If you have more ticks than labels, MATLAB will start repeating your tick mark array. You can take care of that by making sure the ticks and labels are equal in length first:
set(gca,'XTick',[0:4000:20000])
answered Mar 16, 2010 at 20:02
DoresoomDoresoom
7,38814 gold badges46 silver badges61 bronze badges
When you change the axis scale in the plot window, you are simply changing the view on the same data. What you need to do is change the x-values of the points themselves.
I think that to do that you can use a vector of linspace(0, 50, 20000)
as your x-coordinates in your plot
command to give you a set of points with x values in the range of 0 to 50, but you’d need to show the commands you’re currently using to generate your plot for me to give you a more detailed answer.
answered Mar 16, 2010 at 16:15
Brooks MosesBrooks Moses
9,0872 gold badges31 silver badges57 bronze badges
I have a figure that displays 20,000 points on the x-axis. So it
labels the x-axis from 0 … 20,000. However, now I would like to scale
it from 0 to 50. But when I try to do this in the plot window it just
shows me the first 50 points, instead of changing the scale. Is there
any straightforward way to do that in MATLAB?
MatlabDoug
5,7041 gold badge24 silver badges36 bronze badges
asked Mar 16, 2010 at 16:11
You have to change the x-values in your plot, or you can change the axis labels.
Here is how you plot using specific x-values:
%# create some data
data = randn(20000,1);
%# create 20,000 corresponding x-values so that the last one is 50 - works for any number of data points
x = linspace(1,50,length(data));
%# plot
plot(x,data)
EDIT Doresoom has conveniently shown how to change the axis labels.
answered Mar 16, 2010 at 16:32
JonasJonas
74.5k10 gold badges137 silver badges177 bronze badges
Try using the xticklabel
axes property.
set(gca,'XTickLabel',{'0';'10';'20';'30';'40';'50'})
should give you what you want.
EDIT:
Careful with messing with tick labels instead of actually modifying the data, though. If you have more ticks than labels, MATLAB will start repeating your tick mark array. You can take care of that by making sure the ticks and labels are equal in length first:
set(gca,'XTick',[0:4000:20000])
answered Mar 16, 2010 at 20:02
DoresoomDoresoom
7,38814 gold badges46 silver badges61 bronze badges
When you change the axis scale in the plot window, you are simply changing the view on the same data. What you need to do is change the x-values of the points themselves.
I think that to do that you can use a vector of linspace(0, 50, 20000)
as your x-coordinates in your plot
command to give you a set of points with x values in the range of 0 to 50, but you’d need to show the commands you’re currently using to generate your plot for me to give you a more detailed answer.
answered Mar 16, 2010 at 16:15
Brooks MosesBrooks Moses
9,0872 gold badges31 silver badges57 bronze badges
Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
Скачиваний:
320
Добавлен:
02.04.2015
Размер:
1.62 Mб
Скачать
Основы графики в MATALB
Одной из особенностей MATLAB являются простые и мощные возможности по построению графиков. В самом простом случае для построения графика достаточно использования функцию plot. В наиболее простом случае функция plot принимает 2 аргумента: два вектора одинаковой длины, задающие точки для построения графика. Первый аргумент это координаты точек по оси абсцисс, а второй соответствующие координаты по оси ординат. Приведем пример использования этой функции для построения графика
sin( x) :
%пример использования функции plot
%координаты точек для построения графика по оси абсцисс x = -2*pi : 0.5 : 2*pi;
%координаты точек для построения графика по оси ординат y = sin(x);
%строим график по точкам, координаты которых содержатся в x, y plot(x, y);
Врезультате выполнения данного скрипта появится следующие окно с графиком:
Данный пример построения графика является наиболее, простым и не содержит не какого-либо описания, подписей, обозначений, поэтому далее рассмотрим способы оформления графиков в MATLAB.
Оформление графиков
В данном пункте рассмотрим основные функции и команды для оформления графиков.
62
Для создания заголовка текущего графика используется функция title, принимающая заголовок в виде строки и выводящая его над графиком, например:
>> title(‘Exaple graphic’);
Для того чтобы подписать ось абсцисс и ось ординат используются функции xlabel и ylabel соответственно, которые принимаю название осей, например:
>>xlabel(‘x’);
>>ylabel(‘y’);
Теперь рассмотрим функцию legend, выводящую легенду графика. Данную функцию удобно использовать, когда с одних и тех же осей строится несколько графиков (такой пример будет рассмотрен в следующих пунктах). Данная функция принимает названия графиков через запятую, которые содержатся на текущих осях. Например:
legend(‘y=sin(x)’);
Далее рассмотрим как задать масштаб графика. По умолчанию MATLAB автоматически выбирает масштаб графика, что довольно удобно, однако в некоторых случаях масштаб графика по умолчанию нас не всегда будет устраивать, и для задания его вручную используются функции xlim и ylim, принимающие массив из двух элементов, указывающие минимальные и максимальные значения для соответствующей оси, например:
xlim([-100 100]);
В данном случае ось абсцисс будет содержать отображать только значения от -100 до
100.
И последнее что необходимо отметить из основ оформления графиков это включение сетки, выполняющееся командой gird on, которая добавит сетку на текущий график:
>> grid on
Теперь продемонстрируем все представленные возможности по оформлению графика, на примере следующего скрипта:
%пример использования функции plot и функций для оформления графиков
%координаты точек для построения графика по оси абсцисс
x = -20*pi : pi/32 : 20*pi;
%координаты точек для построения графика по оси ординат y = sin(x) .* x;
%строим график по точкам, координаты которых содержатся в x, y plot(x, y);
63
%заголовок графика title(‘Example graphic’);
%подпишем оси xlabel(‘x’); ylabel(‘y’);
%легенда
legend(‘y = sin(x) * x (legend)’);
%масштаб графика
%по оси абсцисс xlim([-100 100]);
%по оси ординат ylim([-100 100]);
%включить сетку grid on
Врезультате выполнения данного скрипта появится следующее окно с графиком:
Вывод нескольких графиков в текущее окно
Для визуального сравнения нескольких графиков удобно строить несколько графиков в пределах одного окна и одной и той же системе координат. Для того чтобы добавить еще один график необходимо использовать команду hold all, после чего снова
64
воспользоваться функцией plot, например:
>>x = -10:0.1:10;
>>y1 = sin(x);
>>y2 = (x / 10) .^3;
>>plot(x, y1);
>>hold all
>>plot(x, y2);
Врезультате выполнения этих команд сформируется следующий график:
Отметим, что если не использовать команду hold all, то последний вызов функции plot затрет все предыдущие графики в текущем окне. Аналогичный результат можно получить и без использования функции hold, указа в plot сразу все графики, которые необходимо построить:
>> plot(x, y1, x, y2);
Построенный в этом случае график не будет отличаться от предыдущего. Однако чтобы этот график был построен в новых осях нужно либо убрать действие функции hold: hold off, или закрыть данное окно, чтобы функция plot создала новое окно с настройками по умолчанию, однако чтобы не делать это вручную, удобно будет воспользоваться функцией close:
>> close
Вызов данной функции без параметров закроек все открытые окна графиков.
65
Теперь рассмотрим способы задания цветов графиков, стилей линий и стилей точек графиков. Наиболее простой и удобный способ это написать строку с описание линии, после указания координат в функции plot(x, y, описание_линиии ), например:
plot(x,y,’-.or’);
Опишем некоторые из них (полное описание можно найти в справке MATLAB): Тип линии
•‘-‘ – сплошная;
•‘—‘ – штриховая линия;
•‘:’ – пунктирная линия;
•‘-.’ – штрихпунктирная линия. Тип маркера:
•‘+’ – знак плюс;
•‘o’ – круг;
•‘*’ – звездочка;
•‘.’ – точка;
•‘x’ – крестик.
Цвет линии и маркеров:
•‘r’ – красный;
•‘g’ – зеленый;
•‘b’ – синий;
•‘k’ – черный.
Тип линии, маркера и цвет могут следовать в строке в любой последовательности, например:
>>x = -1 : 0.1 : 1;
>>plot(x, sin(x), ‘—or’, x, sin(x+pi/2), ‘gx-.’, x, sin(x-pi/2), ‘*b:’);
legend(‘f1(x) = sin(x)’, ‘f2(x) = sin(x+pi/2)’, ‘f3(x) = sin(x-pi/2)’);
Созданный график будет выглядеть следующим образом:
66
Соседние файлы в папке Zadania_na_2_semestr
- #
- #
0 / 0 / 0 Регистрация: 21.04.2015 Сообщений: 23 |
|
1 |
|
Увеличить масштаб участка графика28.05.2015, 21:57. Показов 6983. Ответов 5
Как можно сделать так, чтобы участок от 0 до 0.2 было более подробно видно?
__________________
0 |
533 / 438 / 47 Регистрация: 17.07.2013 Сообщений: 2,236 |
|
28.05.2015, 21:58 |
2 |
Смотрите xlim
0 |
0 / 0 / 0 Регистрация: 21.04.2015 Сообщений: 23 |
|
28.05.2015, 22:32 [ТС] |
3 |
Попробовал — не помогает.
0 |
186 / 191 / 43 Регистрация: 13.05.2013 Сообщений: 709 |
|
29.05.2015, 00:00 |
4 |
А если тупо: axis([0 0.2 0 100]); ?
0 |
0 / 0 / 0 Регистрация: 21.04.2015 Сообщений: 23 |
|
29.05.2015, 00:11 [ТС] |
5 |
Так в том и дело, что мне нужно от 0 до 2 по иксу, а не от 0 до 0.2.=)
0 |
533 / 438 / 47 Регистрация: 17.07.2013 Сообщений: 2,236 |
|
29.05.2015, 08:34 |
6 |
После того, как Вы построили график, в окне Figuries находите вj второй с верху строке значок + в виде лупы, нажимаете пр. кнопку мышки. Открывается новое меню, в самой нижней строке находите и нажимаете Zoom Options, далее нажимаете на Horizontal Zoom. Курсор поменяет вид на +, наводите его на график, нажимаете и будет Вам счастье! Для просмотра других частей графика, которые не поместились на монитор, используете «ладонь»
0 |