plot3

3-D или линейный график точки

Описание

пример

plot3(X,Y,Z) строит графики координат в трехмерном пространстве.

  • Чтобы построить график набора координат, соединенных сегментами линии, задайте X, Y, и Z как векторы той же длины.

  • Чтобы построить несколько наборов координат на одном и том же наборе осей, задайте хотя бы один из X, Y, или Z как матрица, а другие как векторы.

пример

plot3(X,Y,Z,LineSpec) построение графика с использованием заданного стиля линии, маркера и цвета.

пример

plot3(X1,Y1,Z1,...,Xn,Yn,Zn) строит графики нескольких наборов координат на одном и том же наборе осей. Используйте этот синтаксис как альтернативу заданию нескольких наборов в качестве матриц.

пример

plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn) присваивает каждому XYZ определенные стили линии, маркеры и цвета триплет. Можно задать LineSpec для одних триплетов и опускать для других. Для примера, plot3(X1,Y1,Z1,'o',X2,Y2,Z2) задает маркеры для первого триплета, но не для второго триплета.

пример

plot3(___,Name,Value) задает Line свойства с использованием одного или нескольких аргументов пары "имя-значение". Задайте свойства после всех других входных параметров. Список свойств см. в разделе «Свойства линии».

пример

plot3(ax,___) отображение графика в целевой оси. Задайте оси как первый аргумент в любом из предыдущих синтаксисов.

пример

p = plot3(___) возвращает Line объект или массив Line объекты. Использование p для изменения свойств графика после его создания. Список свойств см. в разделе «Свойства линии».

Примеры

свернуть все

Определите t как вектор значений от 0 до 10π. Определите st и ct как векторы значений синуса и косинуса. Затем постройте график st, ct, и t.

t = 0:pi/50:10*pi;
st = sin(t);
ct = cos(t);
plot3(st,ct,t)

Figure contains an axes. The axes contains an object of type line.

Создайте два множеств x, y - и z.

t = 0:pi/500:pi;
xt1 = sin(t).*cos(10*t);
yt1 = sin(t).*sin(10*t);
zt1 = cos(t);

xt2 = sin(t).*cos(12*t);
yt2 = sin(t).*sin(12*t);
zt2 = cos(t);

Вызовите plot3 function, и задавать последовательные XYZ триплеты.

plot3(xt1,yt1,zt1,xt2,yt2,zt2)

Figure contains an axes. The axes contains 2 objects of type line.

Создайте матричные X содержит три строки координат X. Создайте матричные Y содержит три строки y-координат.

t = 0:pi/500:pi;
X(1,:) = sin(t).*cos(10*t);
X(2,:) = sin(t).*cos(12*t);
X(3,:) = sin(t).*cos(20*t);

Y(1,:) = sin(t).*sin(10*t);
Y(2,:) = sin(t).*sin(12*t);
Y(3,:) = sin(t).*sin(20*t);

Создайте матричные Z содержит координаты z для всех трех наборов.

Z = cos(t);

Постройте график всех трех наборов координат на том же наборе осей.

plot3(X,Y,Z)

Figure contains an axes. The axes contains 3 objects of type line.

Создайте векторы xt, yt, и zt.

t = 0:pi/500:40*pi;
xt = (3 + cos(sqrt(32)*t)).*cos(t);
yt = sin(sqrt(32) * t);
zt = (3 + cos(sqrt(32)*t)).*sin(t);

Постройте график данных и используйте axis equal команда для размещения модулей такта одинаково вдоль каждой оси. Затем задайте метки для каждой оси.

plot3(xt,yt,zt)
axis equal
xlabel('x(t)')
ylabel('y(t)')
zlabel('z(t)')

Figure contains an axes. The axes contains an object of type line.

Создайте векторы t, xt, и yt, и постройте график точек в этих векторах с помощью круговых маркеров.

t = 0:pi/20:10*pi;
xt = sin(t);
yt = cos(t);
plot3(xt,yt,t,'o')

Figure contains an axes. The axes contains an object of type line.

Создайте векторы t, xt, и yt, и постройте график точек в этих векторах как синяя линия с 10-точечными круговыми маркерами. Используйте шестнадцатеричный код цвета, чтобы задать цвет заливки светло-синего цвета для маркеров.

t = 0:pi/20:10*pi;
xt = sin(t);
yt = cos(t);
plot3(xt,yt,t,'-o','Color','b','MarkerSize',10,'MarkerFaceColor','#D9FFFF')

Figure contains an axes. The axes contains an object of type line.

Создайте векторные t. Затем используйте t для вычисления двух значений множеств x и y.

t = 0:pi/20:10*pi;
xt1 = sin(t);
yt1 = cos(t);

xt2 = sin(2*t);
yt2 = cos(2*t);

Постройте график двух множеств значений. Используйте линию по умолчанию для первого набора и задайте штриховую линию для второго набора.

plot3(xt1,yt1,t,xt2,yt2,t,'--')

Figure contains an axes. The axes contains 2 objects of type line.

Создайте векторы t, xt, и yt, и постройте график данных в этих векторах. Верните линию на графике переменного выхода p.

t = linspace(-10,10,1000);
xt = exp(-t./10).*sin(5*t);
yt = exp(-t./10).*cos(5*t);
p = plot3(xt,yt,t);

Figure contains an axes. The axes contains an object of type line.

Измените ширину линии на 3.

p.LineWidth = 3;

Figure contains an axes. The axes contains an object of type line.

Начиная с R2019b, можно отобразить плиточное размещение графиков с помощью tiledlayout и nexttile функций. Вызовите tiledlayout функция для создания мозаичного графика размещения 1 на 2. Вызовите nexttile функция для создания объектов осей ax1 и ax2. Создайте отдельные линейные графики в осях путем определения объекта осей в качестве первого аргумента для plot3.

tiledlayout(1,2)

% Left plot
ax1 = nexttile;
t = 0:pi/20:10*pi;
xt1 = sin(t);
yt1 = cos(t);
plot3(ax1,xt1,yt1,t)
title(ax1,'Helix With 5 Turns')

% Right plot
ax2 = nexttile;
t = 0:pi/20:10*pi;
xt2 = sin(2*t);
yt2 = cos(2*t);
plot3(ax2,xt2,yt2,t)
title(ax2,'Helix With 10 Turns')

Figure contains 2 axes. Axes 1 with title Helix With 5 Turns contains an object of type line. Axes 2 with title Helix With 10 Turns contains an object of type line.

Создание x и y как векторы случайных значений между 0 и 1. Создание z как вектор случайных значений длительности.

x = rand(1,10);
y = rand(1,10);
z = duration(rand(10,1),randi(60,10,1),randi(60,10,1));

График x, y, и z, и задайте формат для оси Z как минуты и секунды. Затем добавьте подписей по осям и включите сетку, чтобы облегчить визуализацию точек в рамке графика.

plot3(x,y,z,'o','DurationTickFormat','mm:ss')
xlabel('X')
ylabel('Y')
zlabel('Duration')
grid on

Figure contains an axes. The axes contains an object of type line.

Создайте векторы xt, yt, и zt. Постройте график значений, задав сплошную линию с круговыми маркерами с помощью LineSpec аргумент. Задайте MarkerIndices свойство поместить один маркер в 200-ю точку данных.

t = 0:pi/500:pi;
xt(1,:) = sin(t).*cos(10*t);
yt(1,:) = sin(t).*sin(10*t);
zt = cos(t);
plot3(xt,yt,zt,'-o','MarkerIndices',200)

Figure contains an axes. The axes contains an object of type line.

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

свернуть все

x -кординаты, заданные как скаляр, вектор или матрица. Размер и форма X зависит от формы данных и типа графика, который вы хотите создать. В этой таблице описываются наиболее распространенные ситуации.

Тип графикаКак задать координаты
Одна точка

Задайте X, Y, и Z в качестве скаляров и включают маркер. Для примера:

plot3(1,2,3,'o')

Один набор точек

Задайте X, Y, и Z как любая комбинация строки или векторов-столбцов той же длины. Для примера:

plot3([1 2 3],[4; 5; 6],[7 8 9])

Несколько наборов точек
(с использованием векторов)

Задайте последовательные наборы X, Y, и Z векторы. Для примера:

plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12])

Несколько наборов точек
(использование матриц)

Задайте по крайней мере один из X, Y, или Z как матрица, а другие как векторы. Каждый из X, Y, и Z должен иметь по крайней мере одну размерность того же размера. Для наилучших результатов задайте все векторы одной формы и все матрицы одной формы. Для примера:

plot3([1 2 3],[4 5 6],[7 8 9; 10 11 12])

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

y -кординаты, заданные как скаляр, вектор или матрица. Размер и форма Y зависит от формы данных и типа графика, который вы хотите создать. В этой таблице описываются наиболее распространенные ситуации.

Тип графикаКак задать координаты
Одна точка

Задайте X, Y, и Z в качестве скаляров и включают маркер. Для примера:

plot3(1,2,3,'o')

Один набор точек

Задайте X, Y, и Z как любая комбинация строки или векторов-столбцов той же длины. Для примера:

plot3([1 2 3],[4; 5; 6],[7 8 9])

Несколько наборов точек
(с использованием векторов)

Задайте последовательные наборы X, Y, и Z векторы. Для примера:

plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12])

Несколько наборов точек
(использование матриц)

Задайте по крайней мере один из X, Y, или Z как матрица, а другие как векторы. Каждый из X, Y, и Z должен иметь по крайней мере одну размерность того же размера. Для наилучших результатов задайте все векторы одной формы и все матрицы одной формы. Для примера:

plot3([1 2 3],[4 5 6],[7 8 9; 10 11 12])

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

z -кординаты, заданные как скаляр, вектор или матрица. Размер и форма Z зависит от формы данных и типа графика, который вы хотите создать. В этой таблице описываются наиболее распространенные ситуации.

Тип графикаКак задать координаты
Одна точка

Задайте X, Y, и Z в качестве скаляров и включают маркер. Для примера:

plot3(1,2,3,'o')

Один набор точек

Задайте X, Y, и Z как любая комбинация строки или векторов-столбцов той же длины. Для примера:

plot3([1 2 3],[4; 5; 6],[7 8 9])

Несколько наборов точек
(с использованием векторов)

Задайте последовательные наборы X, Y, и Z векторы. Для примера:

plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12])

Несколько наборов точек
(использование матриц)

Задайте по крайней мере один из X, Y, или Z как матрица, а другие как векторы. Каждый из X, Y, и Z должен иметь по крайней мере одну размерность того же размера. Для наилучших результатов задайте все векторы одной формы и все матрицы одной формы. Для примера:

plot3([1 2 3],[4 5 6],[7 8 9; 10 11 12])

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

Стиль линии, цвет и маркер задается как вектор символов или строка , содержащая символы. Символы могут появиться в любом порядке. Вам не нужно задавать все три характеристики (стиль линии, маркер и цвет). Например, если вы опускаете стиль линии и задаете маркер, то на графике отображается только маркер и нет линии.

Пример: '--or' - красная штриховая линия с маркерами кругов

Стиль линииОписание
-Сплошная линия
--Штриховая линия
:Пунктирная линия
-.Штрих-точка линия
МаркерОписание
'o'Круг
'+'Плюс знак
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
's'Квадрат
'd'Алмаз
'^'Направленный вверх треугольник
'v'Нисходящий треугольник
'>'Треугольник , указывающий вправо
'<'Треугольник , указывающий влево
'p'Пентаграмма
'h'Hexagram
ЦветОписание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: plot3([1 2],[3 4],[5 6],'Color','red') задает красную линию для графика.

Примечание

Перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойств линии».

Цвет, заданный как триплет RGB, шестнадцатеричный код цвета, название цвета или краткое имя. Заданный цвет задает цвет линии. Он также устанавливает цвет ребра маркера, когда MarkerEdgeColor для свойства задано значение 'auto'.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использует на многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Ширина линии, заданная как положительное значение в точках, где 1 точка = 1/72 дюйма. Если у линии есть маркеры, ширина линии также влияет на ребра маркера.

Ширина линии не может быть более тонкой, чем ширина пикселя. Если вы задаете ширину линии значение, которое меньше, чем ширина пикселя в вашей системе, линия отображается как один пиксель в ширину.

Размер маркера, заданный как положительное значение в точках, где 1 точка = 1/72 дюйма.

Цвет контура маркера, заданный как 'auto', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя. Значение по умолчанию 'auto' использует тот же цвет, что и Color свойство.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Цвет заливки маркера, заданный как 'auto', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя. The 'auto' опция использует тот же цвет, что и Color свойство родительской оси. Если вы задаете 'auto' и блок вывода осей невидим, цвет заливки маркера является цветом рисунка.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Совет

  • Использование NaN или Inf чтобы создать пропуски в линиях. Для примера этот код строит график линии с пропуском между z=2 и z=4.

     plot3([1 2 3 4 5],[1 2 3 4 5],[1 2 NaN 4 5])

  • plot3 использует цвета и стили линии на основе ColorOrder и LineStyleOrder свойства осей. plot3 переходит через цвета с первым стилем линии. Затем он снова переходит через цвета с каждым дополнительным стилем линии.

    Начиная с R2019b, вы можете изменить цвета и стили линии после графического изображения, установив ColorOrder или LineStyleOrder свойства на осях. Можно также вызвать функцию colororder функция для изменения порядка цвета для всех осей на рисунке.

Расширенные возможности

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