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) создает 3D объемную поверхностную диаграмму. Графики функций значения в матричном 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

'interp'

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

Триплет RGB, шестнадцатеричный цветовой код или название цвета

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

Триплеты 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'

Вот являются триплеты 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'

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

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

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

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

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

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

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

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

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

'interp'

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

Триплет RGB, шестнадцатеричный цветовой код или название цвета

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

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

Триплеты 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'

Вот являются триплеты 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'

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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