exponenta event banner

прибой

График поверхности

Описание

пример

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 для изменения поверхности после ее создания. Список свойств см. в разделе Свойства поверхности.

Примеры

свернуть все

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

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

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

Задайте цвета для графика поверхности, включив четвертый матричный ввод. C. График поверхности использует 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

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

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

[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)

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

Создайте полупрозрачную поверхность, указав FaceAlpha пара имя-значение с 0.5 в качестве значения. Чтобы разрешить дальнейшие изменения, назначьте объект поверхности переменной s.

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

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

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';

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

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

свернуть все

x-координаты, заданная как матрица того же размера, что и Z, или как вектор с длиной n, где [m,n] = size(Z). Если значения для не указаны X и Y, surf использует векторы (1:n) и (1:m).

Вы можете использовать meshgrid функция для создания X и Y матрицы.

XData имущества Surface объект сохраняет координаты X.

Пример: X = 1:10

Пример: X = [1 2 3; 1 2 3; 1 2 3]

Пример: [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). Если значения для не указаны X и Y, surf использует векторы (1:n) и (1:m).

Вы можете использовать meshgrid для создания X и Y матрицы.

YData свойство объекта поверхности сохраняет координаты y.

Пример: Y = 1:10

Пример: Y = [1 1 1; 2 2 2; 3 3 3]

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

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

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

Z определяет высоту графика поверхности в каждой координате x-y. Если цвета не указаны, то 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

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

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

  • Чтобы использовать цвета truecolor, укажите C как массив RGB-триплетов.

Дополнительные сведения см. в разделе Различия между картами цветов и Truecolor.

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

Оси для печати в, указанные как axes объект. Если оси не указаны, то surf строит графики в текущих осях.

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

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

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

Примечание

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

Цвет линии кромки, указанный как одно из значений, перечисленных здесь. Цвет по умолчанию [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' - Равномерно наносить свет на каждую грань. Это значение используется для просмотра фасетных объектов.

  • 'gouraud' - Изменение света по граням. Рассчитайте свет в вершинах, а затем выполните линейную интерполяцию света по граням. Это значение используется для просмотра криволинейных поверхностей.

  • 'none' - Не применять свет от объектов света к граням.

Для добавления объекта-источника света к осям используйте команду light функция.

Примечание

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

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

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