daspect

Управляйте единичной длиной данных вдоль каждой оси

Синтаксис

daspect(ratio)
d = daspect
daspect auto
daspect manual
m = daspect('mode')
___ = daspect(ax,___)

Описание

пример

daspect(ratio) устанавливает соотношение сторон данных для текущей системы координат. Соотношение сторон данных является относительной длиной модулей данных вдоль оси X, оси Y и оси z. Задайте ratio как трехэлементный вектор положительных значений, которые представляют относительные длины модулей данных вдоль каждой оси. Например, [1 2 3] указывает, что длина от 0 до 1 вдоль оси X равна длине от 0 до 2 вдоль оси Y и от 0 до 3 вдоль оси z. Для равных единичных длин данных во всех направлениях используйте [1 1 1].

пример

d = daspect возвращает соотношение сторон данных для текущей системы координат.

пример

daspect auto устанавливает автоматический режим, позволяя осям выбрать соотношение сторон данных. Режим должен быть автоматическим, чтобы включить "растянуть для заполнения" функция осей.

daspect manual устанавливает ручной режим и использует отношение, сохраненное в свойстве DataAspectRatio для объекта Axes. Когда режим является ручным, он отключает "растянуть для заполнения" поведение осей. Определение значения для соотношения сторон данных устанавливает режим вручную.

пример

m = daspect('mode') возвращает текущий режим, который является или 'auto' или 'manual'. По умолчанию режим является автоматическим, если вы не задаете соотношение сторон данных или устанавливаете режим вручную.

пример

___ = daspect(ax,___) использует оси, заданные ax вместо текущей системы координат. Задайте оси как первый входной параметр для любого из предыдущих синтаксисов. Используйте одинарные кавычки вокруг входных параметров 'manual' и 'auto'.

Примеры

свернуть все

Постройте график набора данных. Используйте модули данных равных длин во всех направлениях путем установки соотношения сторон данных на [1 1 1].

t = linspace(0,2*pi);
x = cos(t);
y = sin(t);
plot(x,y)
daspect([1 1 1])

Постройте график набора данных. Установите соотношение сторон данных так, чтобы длина одного модуля данных в направлении оси X равнялась длине двух модулей данных в направлении оси Y и направлении оси z (не показанный).

t = linspace(0,2*pi);
x = cos(t);
y = sin(t);
plot(x,y)
daspect([1 2 2])

Когда вы устанавливаете соотношение сторон данных, связанный режим изменяется на руководство. Запросите текущий режим соотношения сторон данных.

d = daspect('mode')
d = 
'manual'

Создайте 3-D диаграмму поля точек случайных данных и установите соотношение сторон данных. Затем вернитесь назад к соотношению сторон данных по умолчанию.

X = rand(100,1);
Y = rand(100,1);
Z = rand(100,1);
scatter3(X,Y,Z)
daspect([3 2 1])

daspect auto

Создайте объемную поверхностную диаграмму и запросите соотношение сторон данных.

[x,y] = meshgrid(-2:.2:2);
z = x.*exp(-x.^2 - y.^2);
surf(x,y,z)

d = daspect
d = 1×3

     4     4     1

Отношение указывает, что длина четырех модулей в направлении оси X равняется четырем модулям в направлении оси Y и одному модулю в направлении оси z. Например, если отношением является [4 4 1], то длина от 0 до 1 на оси X равняется длине от 0 до 1 на оси Y и 0 к 0,25 на оси z.

Создайте фигуру с двумя подграфиками и возвратите объекты осей в функцию subplot. Установите соотношение сторон данных для более низкого подграфика путем определения ax2 как первого входного параметра к функции daspect.

ax1 = subplot(2,1,1);
plot(1:10)

ax2 = subplot(2,1,2);
plot(1:10)
daspect(ax2,[1 2 1])

Входные параметры

свернуть все

Соотношение сторон данных, заданное как трехэлементный вектор положительных значений. Например, daspect([1 2 3]) указывает, что длина одного модуля вдоль оси X равняется длине двух модулей вдоль оси Y и трех модулей вдоль оси z.

Определение соотношения сторон данных устанавливает свойство DataAspectRatio для объекта Axes. Свойство DataAspectRatio взаимодействует с PlotBoxAspectRatio, XLim, YLim и свойствами ZLim управлять длиной и шкалой оси X, оси Y и оси z.

Определение отношения устанавливает свойство DataAspectRatioMode на 'manual' и отключает "растянуть для заполнения" поведение осей.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Целевые оси, заданные как объект Axes. Если вы не задаете оси, то daspect использует текущую систему координат (gca).

Выходные аргументы

свернуть все

Текущее соотношение сторон данных, возвращенное как трехэлементный вектор значений, представляющих отношение оси X, оси Y и z единичных длин данных.

Запрос соотношения сторон данных возвращает значение свойства DataAspectRatio для соответствующего объекта Axes.

Текущий режим соотношения сторон данных, возвращенный или как 'auto' или как 'manual'. Когда режим является автоматическим, MATLAB® определяет соответствующее значение соотношения сторон данных. Если вы задаете значение, то режим изменяется на руководство.

Запрос режима соотношения сторон данных возвращает значение свойства DataAspectRatioMode для соответствующего объекта Axes.

Больше о

свернуть все

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

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

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

Алгоритмы

Наборы функции daspect и запросы несколько свойств осей, связанных с соотношением сторон данных.

  • DataAspectRatio Свойство, которое хранит значение соотношения сторон данных.

  • DataAspectRatioMode Свойство, которое хранит режим соотношения сторон данных. Когда вы устанавливаете отношение, это свойство изменяется на 'manual'.

Представлено до R2006a

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