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
значения, таким образом, 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
Графическое изображение соотношения сторон поля
, и CameraViewAngle
свойства. "Растянуть для заполнения" поведение включено когда DataAspectRatioMode
PlotBoxAspectRatioMode
, и CameraViewAngleMode
свойства Axes
объект установлен в 'auto'
.
Если вы задаете соотношение сторон данных, строите соотношение сторон поля или угол поля зрения камеры, то "растянуть для заполнения" поведение отключено. Когда "растянуть для заполнения" поведение отключено, MATLAB делает оси как можно больше в свободном месте и строго придерживается значений свойств так, чтобы не было никакого искажения.
Например, этот рисунок показывает тот же график с и без "растянуть для заполнения", поведение включило. Пунктирная линия показывает свободное место, как задано Position
свойство. В обеих версиях соотношение сторон данных, соотношение сторон поля графика и угловые значения поля зрения камеры являются тем же самым. Однако в левом графике, протяжение вводит некоторое искажение.
"Растянуть для заполнения" включенный (некоторое искажение) | "Растянуть для заполнения" отключенный (никакое искажение) |
---|---|
|
|
axes
| daspect
| pbaspect
| tiledlayout
| title