Объект 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
. В обеих версиях соотношение сторон данных, соотношение сторон поля графика и угловые значения поля зрения камеры являются тем же самым. Однако в левом графике, протяжение вводит некоторое искажение.
"Растянуть для заполнения" включенный (некоторое искажение) | "Растянуть для заполнения" отключенный (никакое искажение) |
---|---|
|
|