Как изменить масштаб графика матлаб

You can use zoom mode to explore data by interactively changing the limits of axes.

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 option sets the zoom mode for all
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(factor) zooms the current axes by the
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(fig,___) sets the zoom
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(fig) creates a
zoom object for the specified figure.

Input Arguments

expand all

optionZoom 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 the disableDefaultInteractivity function.

  • 'reset' — Set the current zoom level as the
    baseline zoom level. Once you set the baseline zoom level, calling zoom
    out
    , double-clicking in the axes, or clicking the Restore View
    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.

factorZoom 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.

figTarget figure
Figure object

Target figure, specified as a Figure object.

Properties

expand all

MotionDimension
'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.

DirectionDirection
'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.

RightClickActionAction 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'.

ButtonDownFilterZoom 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.

ActionPreCallbackFunction 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:

  • figureFigure 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.

ActionPostCallbackFunction 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:

  • figureFigure 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.

EnableZoom mode state
'off' (default) | 'on'

Zoom mode state, specified as 'off' or
'on'.

FigureHandleFigure 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.

UseLegacyExplorationModesLegacy 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.

setAllowAxesZoom

The setAllowAxesZoom function sets permission to zoom
axes.

Calling setAllowAxesZoom(z,axes,tf) on the zoom
object z, with a vector of axes objects axes
and a logical scalar tf as inputs, either allows or disallows a
zoom operation on the axes objects.

Enabling zoom mode for axes using
setAllowAxesZoom does not enable zoom mode for the figure. To
do this, set the Enable property of the zoom
object.

isAllowAxesZoom

The isAllowAxesZoom function queries permission to zoom
axes.

Calling tf = isAllowAxesZoom(z,axes) on the
zoom object z, with a vector of axes objects
axes as an input, returns a logical array tf
of the same size as axes. tf indicates whether
a zoom operation is permitted on the axes objects.

Returning the zoom
mode of axes using isAllowAxesZoom does not return the zoom mode
for the figure. To do this, access the Enable property of the
zoom object.

setAxesZoomConstraint

The setAxesZoomConstraint function sets the zoom
dimension of axes.

Calling
setAxesZoomConstraint(z,axes,d) on the zoom object
z, with a vector of axes objects axes and a
dimension value scalar d as inputs, sets the zoom dimension of
the axes objects as one of these dimension values: 'x',
'y', 'z', 'xy',
'xz', 'yz', or
'unconstrained'.

Setting the zoom dimension for
axes using setAxesZoomConstraint does not set the zoom dimension
for the figure. To do this, set the Motion property of the zoom
object.

getAxesZoomConstraint

The getAxesZoomConstraint function returns the zoom
dimension of axes.

Calling d =
getAxesZoomConstraint(z,axes)
on the zoom object z,
with a vector of axes objects axes as an input, returns a cell
array d indicating the zoom dimension of each axes object.

Returning the zoom dimension of axes using
getAxesZoomConstraint does not return the zoom dimension for
the figure. To do this, access the Motion property of the zoom
object.

setAxes3DPanAndZoomStyle

The setAxes3DPanAndZoomStyle function sets the zoom
style.

Calling setAxes3DPanAndZoomStyle(z,axes,s) on
the zoom object z, with a vector of axes objects
axes and a zoom style character array s as
inputs, sets the zoom style of the axes objects. By default, the zoom style is
'limits', which zooms by modifying the axes limits. Specify the
zoom style as 'camera' to zoom by modifying the camera view
angle.

For more information about the camera view angle, see Camera Graphics Terminology.

getAxes3DPanAndZoomStyle

The getAxes3DPanAndZoomStyle function returns the zoom
style.

Calling s = getAxes3DPanAndZoomStyle(z,axes)
on the zoom object z, with a vector of axes objects
axes as an input, returns a cell array s
indicating the zoom style of each axes object.

setAxesZoomMotion (not recommended)

This function is not recommended. Use
setAxesZoomConstraint instead.

Calling
setAxesZoomMotion(z,axes,d) on the zoom object
z, with a vector of axes objects axes and a
zoom dimension d as inputs, sets the zoom dimension of the axes
objects as one of these dimension values: 'horizontal',
'vertical', or 'both'.

The axes
zoom dimension that is set by setAxesZoomMotion is not the same
as the figure zoom dimension that is set using the Motion
property.

getAxesZoomMotion (not recommended)

This function is not recommended. Use
getAxesZoomConstraint instead.

Calling d =
getAxesZoomMotion(z,axes)
on the zoom object z, with
a vector of axes objects axes as an input, returns a cell array
d indicating the zoom dimension of each axes
object.

The axes zoom dimension that is returned using
getAxesZoomMotion is not the same as the figure zoom dimension
that is returned using the Motion property.

Examples

collapse all

Set Baseline Zoom Level

Plot a surface and enable zoom mode.

A surface with several peaks

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.

The surface zoomed into the tallest peak

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;

A surface with several peaks

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™.

Функции объекта

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

setAllowAxesZoom

setAllowAxesZoom(z,ax,tf) устанавливает режим изменения масштаба для объекта осей ax согласно логическому значению в tf. Оба ax и tf должны быть скаляры.

Включение изменения масштаба для осей с помощью setAllowAxesZoom не включает изменение масштаба для фигуры. Для этого установите Enable свойство объекта изменения масштаба.

isAllowAxesZoom

tf = isAllowAxesZoom(z,ax) возвращает режим изменения масштаба для объектов осей в векторном ax как логический векторный tf. Размер tf совпадает с ax.

Возврат режима изменения масштаба осей с помощью isAllowAxesZoom не возвращает режим изменения масштаба для фигуры. Для этого получите доступ к Enable свойство объекта изменения масштаба.

setAxesZoomConstraint

setAxesZoomConstraint(z,ax,d) устанавливает размерность изменения масштаба для скалярного объекта осей ax согласно значению размерности d. Задайте размерность как одно из этих значений: 'x'YZx, y , 'xz', 'yz', или 'unconstrained'. Например, setAxesZoomConstraint(z,ax,'xy') позволяет вам увеличивать масштаб размерности X и Y только.

Установка размерности изменения масштаба для осей с помощью setAxesZoomConstraint не устанавливает размерность изменения масштаба для фигуры. Для этого установите Motion свойство объекта изменения масштаба.

getAxesZoomConstraint

d = getAxesZoomConstraint(z,ax) возвращает размерность изменения масштаба d для скалярного объекта осей ax как 'x'YZx, y , 'xz', 'yz', или 'unconstrained'.

Возврат размерности изменения масштаба осей с помощью getAxesZoomConstraint не возвращает размерность изменения масштаба для фигуры. Для этого получите доступ к Motion свойство объекта изменения масштаба.

setAxes3DPanAndZoomStyle

setAxes3DPanAndZoomStyle(z,ax,s) устанавливает стиль изменения масштаба s для объектов осей в векторном ax. По умолчанию стилем изменения масштаба является 'limits', который масштабирует путем изменения пределов осей. Задайте стиль изменения масштаба как 'camera' масштабировать путем изменения угла поля зрения камеры. Например, используйте setAxes3DPanAndZoomStyle(z,ax,'camera').

Для получения дополнительной информации об угле поля зрения камеры, смотрите Терминологию Графики Камеры.

getAxes3DPanAndZoomStyle

s = getAxes3DPanAndZoomStyle(z,ax) возвращает стиль изменения масштаба для объектов осей в векторном ax как символьный массив ячеек s. Элементы s возвращены как 'limits' или 'camera'.

setAxesZoomMotion (не рекомендуемый)

Эта функция не рекомендуется. Используйте setAxesZoomConstraint вместо этого.

setAxesZoomMotion(z,ax,d) устанавливает размерность изменения масштаба d для объектов осей в векторном ax. Задайте размерность изменения масштаба как 'horizontal', 'vertical', или 'both'.

Оси масштабируют размерность, которая установлена setAxesZoomMotion различный как размерность изменения масштаба фигуры, которая установлена с помощью Motion свойство.

getAxesZoomMotion (не рекомендуемый)

Эта функция не рекомендуется. Используйте setAxesZoomConstraint вместо этого.

d = getAxesZoomMotion(z,ax) возвращает размерности изменения масштаба для объектов осей в векторном ax как символьный массив ячеек d. Элементы d возвращены как 'horizontal', 'vertical', или 'both'.

Оси масштабируют размерность, которая возвращена с помощью getAxesZoomMotion различный как размерность изменения масштаба фигуры, которая возвращена с помощью Motion свойство.

Примеры

свернуть все

Установите базовый уровень изменения масштаба

Отобразите на графике некоторые данные, увеличение, и затем установите базовый уровень изменения масштаба. Будущее вызывает к zoom out возвратите оси в базовый уровень изменения масштаба, который вы устанавливаете.

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

[X,Y,Z] = peaks(20);
surf(X,Y,Z)
zoom on

A surface with several peaks

Масштабируйте в самый высокий пик путем нажатия на него. Затем установите базовый уровень изменения масштаба.

The surface zoomed into the tallest peak

Масштабируйте в самый высокий пик во второй раз, затем вызовите zoom out.

Оси возвращаются к базовому уровню изменения масштаба, который вы устанавливаете.

Создайте контекстное меню

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

Во-первых, получите координаты предопределенной поверхности и постройте их.

[X,Y,Z] = peaks(20);
surf(X,Y,Z)

A surface with several peaks

Создайте контекстное меню с помощью 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's user avatar

MatlabDoug

5,7041 gold badge24 silver badges36 bronze badges

asked Mar 16, 2010 at 16:11

Phil's user avatar

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.

Community's user avatar

answered Mar 16, 2010 at 16:32

Jonas's user avatar

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

Doresoom's user avatar

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 Moses's user avatar

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's user avatar

MatlabDoug

5,7041 gold badge24 silver badges36 bronze badges

asked Mar 16, 2010 at 16:11

Phil's user avatar

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.

Community's user avatar

answered Mar 16, 2010 at 16:32

Jonas's user avatar

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

Doresoom's user avatar

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 Moses's user avatar

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



Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить масштаб графика python
  • Как изменить масштаб графика mathcad
  • Как изменить масштаб горизонтальной оси задав максимальное значение 3
  • Как изменить масштаб гифки
  • Как изменить масштаб выкройки при печати на принтере

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии