surfc

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

Описание

пример

surfc(X,Y,Z) создает 3D объемную поверхностную диаграмму с контурным графиком внизу. Объемная поверхностная диаграмма является 3D поверхностью, которая имеет твердые цвета обводки и чистые цвета поверхности. Графики функций значения в матричном 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 изменить поверхность и контурные графики после того, как они создаются. Для списка свойств смотрите Surface Properties и Свойства контура.

Примеры

свернуть все

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

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

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

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

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

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

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

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

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

Z = peaks;
sc = surfc(Z);

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

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

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

свернуть все

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

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

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

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

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

Когда 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

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

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

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

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

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

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

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

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

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

Пример: surfc(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' — Примените свет однородно через каждую поверхность. Используйте это значение, чтобы просмотреть фасетированные объекты.

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

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

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

Примечание

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

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

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