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

Свойства, связанные с положением осей

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

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

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

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

  • PositionConstraint - Позиционное свойство сохраняется при Axes объект изменяет размер, заданный как 'outerposition' или 'innerposition'.

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

Позиционные и маржинальные Контуры

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

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

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

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

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

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

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

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

Примечание

Следующий код использует PositionConstraint свойство, которое является новым, начиная с R2020a. Если вы используете более ранний релиз, установите ActivePositionProperty к любому из 'outerposition' или 'position'.

figure; 
ax1 = axes('Position',[0.13 0.58 0.77 0.34]);
ax1.PositionConstraint = 'outerposition';
% R2019b and earlier: 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.PositionConstraint = 'innerposition';
% R2019b and earlier: 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 свойство. В обеих версиях соотношение сторон данных, соотношение сторон графика и значения угла поля зрения камеры одинаковы. Однако на левом графике растяжение вносит некоторое искажение.

Растяжение до заливки включено (некоторое искажение)Растяжение до заливки отключено (без искажений)

См. также

Функции

Свойства

Похожие темы