surface

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

Описание

пример

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

В отличие от surf function, примитив surface функция не вызывает newplot перед построением графика и не уважает значение NextPlot свойство для рисунка или осей. Вместо этого он добавляет объемную поверхностную диаграмму к текущим системам координат, не удаляя другие графические объекты и не сбрасывая свойства осей.

пример

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

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

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

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

view(3)

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;
surface(X,Y,Z,C)
colorbar
view(3)

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 = surface(X,Y,Z,'FaceAlpha',0.5);
view(3)

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

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

s.EdgeColor = 'none';

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

Создайте поверхность и отобразите изображение вдоль нее.

Создайте три матрицы одинакового размера.

[pX,pY,pZ] = peaks(25);

Загрузка набора данных, содержащего изображение Земли. Данные об изображении появляются в переменной рабочей области X, и связанная палитра появляется в map.

load earth
who
Your variables are:

X    map  pX   pY   pZ   

Создать объемную поверхностную диаграмму и отобразить изображение вдоль поверхности. Поскольку данные о поверхности pZ и данные о цвете X имеют различные размеры, установите поверхность FaceColor на 'texturemap'. Установите вид графика на трехмерном виде по умолчанию.

surface(pX,pY,pZ,X,'FaceColor','texturemap', ...
    'EdgeColor','none','CDataMapping','direct')
colormap(map)
view(3)

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

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

свернуть все

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

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

The XData свойство Surface объект сохраняет x -cordinates.

Пример: 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

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

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

The YData свойство объекта surface сохраняет y -cordinates .

Пример: 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

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

Z задает высоту объемной поверхностной диаграммы в каждом x - y координате. Если вы не задаете цвета, то Z также задает цвета поверхности.

The ZData свойство объекта surface сохраняет z -cordinates .

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

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

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

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

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

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

Для получения дополнительной информации смотрите Различия между Палитрами и Труеколором.

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

Графическое изображение осей, заданное как axes объект. Если вы не задаете оси, то surface графики в текущей системе координат.

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

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

Пример: surface(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 свойство. The FaceColor свойство также должно быть установлено в 'flat'.

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

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

Эффект световых объектов на гранях, заданный как одно из следующих значений:

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

  • 'gouraud' - Варьируйте свет по граням. Вычислите свет в вершинах и затем линейно интерполируйте свет через грани. Используйте это значение для просмотра изогнутых поверхностей.

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

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

Примечание

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

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