surf

Объемная поверхностная диаграмма

Синтаксис

surf(X,Y,Z)
surf(X,Y,Z,C)
surf(Z)
surf(Z,C)
surf(ax,___)
surf(___,Name,Value)
s = surf(___)

Описание

пример

surf(X,Y,Z) создает трехмерную объемную поверхностную диаграмму. Функция строит график значений в матричном Z как высоты выше сетки в x-y плоскости, заданной X и Y. Функция также использует Z для цветных данных, таким образом, цвет пропорционален высоте.

пример

surf(X,Y,Z,C) дополнительно задает поверхностный цвет.

surf(Z) создает поверхность и использует столбец и индексы строки элементов в Z, когда x и y координирует, соответственно.

surf(Z,C) дополнительно задает поверхностный цвет.

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

пример

surf(___,Name,Value) задает поверхностные свойства с помощью одного или нескольких аргументов в виде пар "имя-значение". Например, 'FaceAlpha',0.5 создает полупрозрачную поверхность. Задайте пары "имя-значение" после всех других входных параметров.

пример

s = surf(___) возвращает объект подложки графика. Используйте s, чтобы изменить поверхность после того, как это будет создано. Для списка смотрите Surface Properties.

Примеры

свернуть все

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

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z)

Задайте цвета для объемной поверхностной диаграммы включения четвертого матричного входного параметра, C. Используйте цвета палитры путем определения C как матрицы тот же размер как Z. Добавьте шкалу палитры к графику, чтобы показать, как значения данных в C сопоставляют с цветами в палитре.

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
C = X.*Y;
surf(X,Y,Z,C)
colorbar

Задайте цвета для объемной поверхностной диаграммы включения четвертого матричного входного параметра, CO. Используйте истинные цвета путем создания CO как m n 3 массивами значений триплета RGB, где Z является m на n. Первая страница массива указывает на красный компонент для каждого цвета; вторая страница указывает на зеленый компонент; и третья страница указывает на синий компонент.

[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
surf(X,Y,Z,CO)

Создайте полупрозрачную поверхность путем установки свойства FaceAlpha как аргумента в виде пар "имя-значение". Присвойте объект подложки переменному s.

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'FaceAlpha',0.5)

s = 
  Surface with properties:

       EdgeColor: [0 0 0]
       LineStyle: '-'
       FaceColor: 'flat'
    FaceLighting: 'flat'
       FaceAlpha: 0.5000
           XData: [21x21 double]
           YData: [21x21 double]
           ZData: [21x21 double]
           CData: [21x21 double]

  Show all properties

Используйте s, чтобы получить доступ и изменить свойства объекта подложки после того, как это будет создано. Например, выключите отображение краев путем установки свойства EdgeColor.

s.EdgeColor = 'none';

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

свернуть все

x координаты, заданные как матрица тот же размер как Z или как вектор с длиной n, где [m,n] = size(Z). Чтобы создать матрицу для произвольных областей, используйте функцию meshgrid.

Свойство XData объекта подложки хранит x значения.

Пример: [X, Y] = meshgrid (-5:0.5:5)

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | категориальный | datetime | длительность

y координаты, заданные как матрица тот же размер как Z или как вектор с длиной m, где [m,n] = size(Z). Чтобы создать матрицу для произвольных областей, используйте функцию meshgrid.

Свойство YData объекта подложки хранит y значения.

Пример: [X, Y] = meshgrid (-5:0.5:5)

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | категориальный | datetime | длительность

z координаты, заданные как матрица. Если вы не задаете цвета, то Z также выбирает поверхностные цвета.

Свойство ZData объекта подложки хранит z значения.

Пример: Z = [1 2 3; 4 5 6]

Пример: Z = sin (x) + because(y)

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | категориальный | datetime | длительность

Цвет для каждой вершины, заданной как матрица тот же размер как Z или как m-by-n-by-3 массив триплетов RGB, где Z является m-by-n.

  • Если вы хотите использовать цвета палитры, то задайте C как матрицу. Свойство CDataMapping объекта подложки управляет, как значения в C сопоставляют с, раскрашивает палитру.

  • Если вы хотите использовать истинные цвета, то задайте C как массив триплетов RGB.

Свойство CData объекта подложки хранит цветные данные. Для дополнительного управления окраской поверхности используйте свойства FaceColor и EdgeColor.

Оси, в которых можно построить график, заданный как объект осей. Если вы не задаете оси, то surf строит график в текущую систему координат.

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: surf (X, Y, Z, 'FaceAlpha', 0.5, 'EdgeColor', 'ни один') создает полупрозрачную поверхность без чертивших краев.

Примечание

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

Граничный цвет линии, заданный как одно из значений, перечисленных здесь. Цвет по умолчанию [0 0 0] соответствует черным краям.

ЗначениеОписание
'none'Не чертите края.
'flat'

Используйте различный цвет для каждого края на основе значений в свойстве CData. Сначала необходимо задать свойство CData как матрицу тот же размер как ZData. Значение цвета в первой вершине каждой поверхности (в положительных направлениях x и y) определяет цвет для смежных краев. Вы не можете использовать это значение когда EdgeAlpha свойство установлено в 'interp'.

'interp'

Используйте интерполированную окраску для каждого края на основе значений в свойстве CData. Сначала необходимо задать свойство CData как матрицу тот же размер как ZData. Цвет отличается через каждый край путем линейной интерполяции значений цвета в вершинах. Вы не можете использовать это значение когда EdgeAlpha свойство установлено в 'flat'.

Триплет RGB или название цвета

Используйте заданный цвет для всех краев. Эта опция не использует значения цвета в свойстве CData.

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

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]

Стиль линии, заданный как одна из опций, перечислен в этой таблице.

Стиль линииОписаниеПолучившаяся строка
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Никакая строкаНикакая строка

Цвет поверхности, заданный как одно из значений в этой таблице.

ЗначениеОписание
'flat'

Используйте различный цвет для каждой поверхности на основе значений в свойстве CData. Сначала необходимо задать свойство CData как матрицу тот же размер как ZData. Значение цвета в первой вершине каждой поверхности (в положительных направлениях x и y) определяет цвет для целой поверхности. Вы не можете использовать это значение когда FaceAlpha свойство установлено в 'interp'.

'interp'

Используйте интерполированную окраску для каждой поверхности на основе значений в свойстве CData. Сначала необходимо задать свойство CData как матрицу тот же размер как ZData. Цвет отличается через каждую поверхность путем интерполяции значений цвета в вершинах. Вы не можете использовать это значение когда FaceAlpha свойство установлено в 'flat'.

Триплет RGB или название цвета

Используйте заданный цвет для всех поверхностей. Эта опция не использует значения цвета в свойстве CData.

'texturemap'Преобразуйте цветные данные в CData так, чтобы он соответствовал поверхности.
'none'Не чертите поверхности.

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

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]

Столкнитесь с прозрачностью, заданной как одно из этих значений:

  • Скаляр в области значений [0,1] — универсальная прозрачность Использования через все поверхности. Значение 1 полностью непрозрачно, и 0 абсолютно прозрачен. Values between 0 and 1 are semitransparent. Эта опция не использует значения прозрачности в свойстве AlphaData.

  • 'flat' — Используйте различную прозрачность для каждой поверхности на основе значений в свойстве AlphaData. Значение прозрачности в первой вершине определяет прозрачность для целой поверхности. Сначала необходимо задать свойство AlphaData как матрицу тот же размер как свойство ZData. Свойство FaceColor также должно быть установлено в 'flat'.

  • 'interp' — Используйте интерполированную прозрачность для каждой поверхности на основе значений в свойстве AlphaData. Прозрачность отличается через каждую поверхность путем интерполяции значений в вершинах. Сначала необходимо задать свойство AlphaData как матрицу тот же размер как свойство ZData. Свойство FaceColor также должно быть установлено в 'interp'.

  • 'texturemap' — Преобразуйте данные в AlphaData так, чтобы он соответствовал поверхности.

Эффект световых объектов на поверхностях, заданных как одно из этих значений:

  • Световой сигнал 'flat' — Apply однородно через каждую поверхность. Используйте это значение, чтобы просмотреть фасетированные объекты.

  • 'gouraud' — Отличайтесь свет через поверхности. Вычислите свет в вершинах и затем линейно интерполируйте свет через поверхности. Используйте это значение, чтобы просмотреть кривые поверхности.

  • 'none' Не применяйте свет от световых объектов до поверхностей.

Чтобы добавить световой объект к осям, используйте функцию light.

Примечание

Значение 'phong' было удалено. Используйте 'gouraud' вместо этого.

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

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

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