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

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 свойства включают весь текст графика.

  • PositionConstraint — Свойство Position, сохраненное, когда Axes возразите размеру изменений в виде любого 'outerposition' или 'innerposition'.

  • Units — Модули положения. Модули должны быть установлены в '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Графическое изображение соотношения сторон поля, и CameraViewAngle свойства. "Растянуть для заполнения" поведение включено когда DataAspectRatioModePlotBoxAspectRatioMode , и CameraViewAngleMode свойства Axes объект установлен в 'auto'.

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

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

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

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

Функции

Свойства

Похожие темы