surface

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

Описание

пример

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

В отличие от surf функция, примитивный 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 изменить поверхность после того, как это создается. Для списка свойств смотрите Surface Properties.

Примеры

свернуть все

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

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

По умолчанию, surface отображает объемную поверхностную диаграмму с помощью двумерного представления по умолчанию. Установите представление графика к 3D представлению по умолчанию.

view(3)

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

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

Создайте полупрозрачную поверхность путем определения 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)

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

s.EdgeColor = 'none';

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

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

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

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

load earth
who
Your variables are:

X    map  pX   pY   pZ   

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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