Управление размещением осей

Axes Position-Related Properties

  Объект Axes имеет несколько свойств, которые управляют размером осей и размещением заголовков и подписей по осям в фигуре.

  • OuterPosition Внешняя граница осей, включая заголовок, метки и поле. Задайте это свойство как вектор формы [left bottom width height]. left и значения bottom указывают на расстояние от левого нижнего угла фигуры к левому нижнему углу внешней границы. width и значения height указывают на размерности внешней границы.

  • Position — Контур внутренних осей, где графики появляются, исключая заголовок, метки и поле. Задайте это свойство как вектор формы [left bottom width height].

  • TightInset — Поля добавляются к ширине и высоте значений свойств Position, заданных как вектор формы [left bottom right top]. Это свойство доступно только для чтения. Когда вы добавляете подписи по осям и заголовок, MATLAB® обновляет значения, чтобы разместить текст. Размер контура, заданного свойствами Position и TightInset, включает весь текст графика.

  • Свойство ActivePositionProperty — Position сохранило, когда объект Axes изменяет размер, заданный как любой 'outerposition' (значение по умолчанию) или 'position'.

  • Модули Модули положения. Модули должны собираться в 'normalized' (значение по умолчанию) включить автоматическое изменение размеров осей. Когда модули положения являются единицей длины, такой как дюймы или сантиметры, затем объект Axes является фиксированным размером.

Положение и граничные контуры

Эти данные показывают 2D представление областей осей, заданных  (красными) значениями OuterPosition,  (синие) значения Position, и Position , расширенный  значениями TightInset (пурпурный).

Эти данные показывают 3-D представление областей осей, заданных  (красными) значениями OuterPosition,  (синие) значения Position, и Position , расширенный  значениями TightInset (пурпурный).

Управление поведением автоматического изменения размера

Некоторые сценарии могут инициировать объект Axes автоматически изменить размер. Например, в интерактивном режиме изменение размеров фигуры или добавление заголовка или подписей по осям активируют автоматическое изменение размеров. Иногда, новый размер осей не может удовлетворить и Position и значения OuterPosition, таким образом, ActivePositionProperty указывает который значения сохранить. Задайте ActivePositionProperty как одно из этих значений:

  • OuterPosition Сохраните значение OuterPosition. Используйте эту опцию, когда вы не захотите, чтобы оси или любой сопроводительный текст расширили вне определенной внешней границы. MATLAB настраивает размер внутренней области осей (где графики появляются) пытаться соответствовать содержимому во внешней границе.

  • 'position' — Сохраните значение Position. Используйте эту опцию когда это необходимо внутренняя область осей, чтобы остаться определенный размер в фигуре. Эта опция иногда заставляет текст, убегает фигура.

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

Например, создайте фигуру с двумя осями и задайте ту же ширину и высоту для каждого положения осей. Установите значение ActivePositionProperty к 'outerposition' для верхних осей и к 'position' для более низких осей. Заметьте, что в верхних осях, внутренние уменьшения области, чтобы разместить текст, но текст не запускается вне фигуры. В более низких осях сохраняется размер внутренней области, но часть текста отключена.

figure; 
ax1 = axes('Position',[0.13 0.58 0.77 0.34]);
ax1.ActivePositionProperty = 'outerposition';
plot(ax1,1:10)
title(ax1,'Preserve OuterPosition')
yticklabels(ax1,{'My incredibly descriptive, excessively wordy, and overly long label',...
    'label 2','label 3'})

ax2 = axes('Position',[0.13 0.11 0.77 0.34]);
ax2.ActivePositionProperty = 'position';
plot(ax2,1:10)
title(ax2,'Preserve Position')
yticklabels(ax2,{'My incredibly descriptive, excessively wordy, and overly long label',...
    'label 2','label 3'})

"Растянуть для заполнения" поведение

По умолчанию MATLAB расширяет оси, чтобы заполнить свободное место. Это "растянуть для заполнения" поведение может вызвать некоторое искажение. Оси не могут точно совпадать с соотношением сторон данных, соотношением сторон поля графика и угловыми значениями поля зрения камеры, сохраненными в DataAspectRatio, PlotBoxAspectRatio и свойствах CameraViewAngle. "Растянуть для заполнения" поведение включено, когда DataAspectRatioMode, PlotBoxAspectRatioMode и свойства CameraViewAngleMode объекта Axes установлены в 'auto'.

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

Например, эти данные показывают тот же график с и без "растянуть для заполнения", поведение включило. Пунктирная линия показывает свободное место, как задано свойством Position. В обеих версиях соотношение сторон данных, соотношение сторон поля графика и угловые значения поля зрения камеры являются тем же самым. Однако в левом графике, протяжение представляет некоторое искажение.

"Растянуть для заполнения" включенный (некоторое искажение)"Растянуть для заполнения" отключенный (никакое искажение)

Смотрите также

Функции

Свойства

Похожие темы

Была ли эта тема полезной?