surfc

Контурный график под объемной поверхностной диаграммой

Описание

пример

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

пример

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

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

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

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

пример

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

пример

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

Примеры

свернуть все

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

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

Figure contains an axes. The axes contains 2 objects of type surface, contour.

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

[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
C = X.*Y;
surfc(X,Y,Z,C)
colorbar

Figure contains an axes. The axes contains 2 objects of type surface, contour.

Создать синюю объемную поверхностную диаграмму с контурным графиком под ним путем определения FaceColor Пара "имя-значение" с 'b' как значение. Чтобы разрешить дальнейшие изменения, присвойте графический массив, содержащий объекты поверхности и контура, переменной sc.

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
sc = surfc(X,Y,Z,'FaceColor','b');

Figure contains an axes. The axes contains 2 objects of type surface, contour.

Индексируйте в sc для доступа и изменения свойств поверхностных и контурных графиков после их создания. Доступ к объемной поверхностной диаграмме возможен как sc(1) и контурный график как sc(2). Для примера измените ребро цвета двух графиков путем установки EdgeColor свойства.

sc(1).EdgeColor = 'r';
sc(2).EdgeColor = 'b';

Figure contains an axes. The axes contains 2 objects of type surface, contour.

Контурные линии появляются на минимальном уровне z по умолчанию, но можно изменить местоположение, установив ZLocation свойство.

Отобразите peaks набор данных как объемная поверхностная диаграмма с контурами на минимальном уровне z. Задайте возвращаемый аргумент при вызове surfc функцию, чтобы вы могли получить доступ к Contour объект.

Z = peaks;
sc = surfc(Z);

Figure contains an axes. The axes contains 2 objects of type surface, contour.

Получите текущую систему координат и удлините верхний предел оси Z до 15. Затем переместите контуры на максимальный z-уровень.

ax = gca;
ax.ZLim(2) = 15;
sc(2).ZLocation = 'zmax';

Figure contains an axes. The axes contains 2 objects of type surface, contour.

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

свернуть все

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

Когда X является матрицей, значения должны строго увеличиваться или уменьшаться по одной размерности и оставаться постоянными по другой размерности. Размерность, которая изменяется, должна быть противоположной размерности, которая изменяется в Y. Вы можете использовать meshgrid функция для создания X и Y матрицы.

Когда X является вектором, значения должны строго увеличиваться или уменьшаться.

The XData свойства поверхности и контурных объектов сохраняют 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

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

Когда Y является матрицей, значения должны строго увеличиваться или уменьшаться по одной размерности и оставаться постоянными по другой размерности. Размерность, которая изменяется, должна быть противоположной размерности, которая изменяется в X. Вы можете использовать meshgrid функция для создания X и Y матрицы.

Когда Y является вектором, значения должны строго увеличиваться или уменьшаться.

The 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

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

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

The 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

Цветовой массив, заданный как 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 объект. Если вы не задаете оси, то surfc графики в текущей системе координат.

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

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

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