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

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

свернуть все

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