Контурный график под объемной поверхностной диаграммой
surfc(
создает трехмерную объемную поверхностную диаграмму с контурным графиком под. Объемная поверхностная диаграмма является трехмерной поверхностью, которая имеет твердые ребра цвета и твердые цвета лица. А графики функций значения в матрице X
,Y
,Z
)Z
как высоты над сеткой в плоскости x - y заданные X
и Y
. Цвет поверхности изменяется в зависимости от высот, заданных Z
.
surfc(
создает поверхность и контур графика и использует индексы столбцов и строк элементов в Z
)Z
как x - и y - координаты.
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)
Задайте цвета для поверхности и контурного графика, включив четвертый матричный вход, 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
- x -координаты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
- y -координаты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 -координаты, заданные как матрица. 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
C
- Цветовой массивm
-by- n
-by- 3
массив триплетов RGBЦветовой массив, заданный как 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
свойства.
ax
- Ось для построения графикаГрафическое изображение осей, заданное как axes
объект. Если вы не задаете оси, то surfc
графики в текущей системе координат.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
surfc(X,Y,Z,'FaceAlpha',0.5,'EdgeColor','none')
создает полупрозрачную поверхность без нарисованных ребер.Примечание
Перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойств поверхности».
'EdgeColor'
- Цвет краевой линии[0 0 0]
(по умолчанию) | 'none'
| 'flat'
| 'interp'
| триплет RGB | шестнадцатеричный цветовой код | 'r'
| 'g'
| 'b'
| ...Цвет ребра, заданный как одно из значений, перечисленных здесь. Цвет по умолчанию [0 0 0]
соответствует чёрным ребрам.
Значение | Описание |
---|---|
'none' | Не рисуйте ребер. |
'flat' | Используйте другой цвет для каждого ребра на основе значений в |
'interp' |
Используйте интерполированную раскраску для каждого ребра на основе значений в
|
Триплет RGB, шестнадцатеричный цветовой код или название цвета |
Используйте указанный цвет для всех ребер. Эта опция не использует значения цветов в
|
Триплеты 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' |
'LineStyle'
- Стиль линии'-'
(по умолчанию) | '--'
| ':'
| '-.'
| 'none'
Стиль линии, заданный как одно из опций, перечисленных в этой таблице.
Стиль линии | Описание | Результирующая линия |
---|---|---|
'-' | Сплошная линия |
|
'--' | Штриховая линия |
|
':' | Пунктирная линия |
|
'-.' | Штрих-пунктирная линия |
|
'none' | Нет линии | Нет линии |
'FaceColor'
- Цвет лица'flat'
(по умолчанию) | 'interp'
| 'none'
| 'texturemap'
| триплет RGB | шестнадцатеричный цветовой код | 'r'
| 'g'
| 'b'
| ...Цвет грани, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
'flat' | Используйте другой цвет для каждой грани на основе значений в |
'interp' |
Используйте интерполированную раскраску для каждой грани на основе значений в
|
Триплет RGB, шестнадцатеричный цветовой код или название цвета |
Используйте указанный цвет для всех граней. Эта опция не использует значения цветов в
|
'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' |
'FaceAlpha'
- Прозрачность лица[0,1]
| 'flat'
| 'interp'
| 'texturemap'
Прозрачность лица, заданная в качестве одного из следующих значений:
Скаляр в области значений [0,1]
- Используйте равномерную прозрачность по всем граням. Значение 1
полностью непрозрачен и 0
полностью прозрачен. Значения между 0
и 1
являются полупрозрачными. Эта опция не использует значения прозрачности в AlphaData
свойство.
'flat'
- Используйте разную прозрачность для каждой грани на основе значений в AlphaData
свойство. Значение прозрачности в первой вершине определяет прозрачность для всей грани. Сначала необходимо задать AlphaData
свойство как матрица того же размера, что и ZData
свойство. The FaceColor
свойство также должно быть установлено в 'flat'
.
'interp'
- Используйте интерполированную прозрачность для каждой грани на основе значений в AlphaData
свойство. Прозрачность изменяется между каждой гранью путем интерполяции значений в вершинах. Сначала необходимо задать AlphaData
свойство как матрица того же размера, что и ZData
свойство. The FaceColor
свойство также должно быть установлено в 'interp'
.
'texturemap'
- Преобразуйте данные в AlphaData
так, чтобы он соответствовал поверхности.
'FaceLighting'
- Эффект световых объектов на гранях'flat'
(по умолчанию) | 'gouraud'
| 'none'
Эффект световых объектов на гранях, заданный как одно из следующих значений:
'flat'
- Нанесите свет равномерно на каждую грань. Используйте это значение для просмотра граненых объектов.
'gouraud'
- Варьируйте свет по граням. Вычислите свет в вершинах и затем линейно интерполируйте свет через грани. Используйте это значение для просмотра изогнутых поверхностей.
'none'
- Не наносить на грани свет от световых объектов.
Чтобы добавить светлый объект к осям, используйте light
функция.
Примечание
The 'phong'
значение удалено. Использование 'gouraud'
вместо этого.
Указания и ограничения по применению:
Эта функция принимает массивы GPU, но не запускается на графическом процессоре.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Указания и ограничения по применению:
Эта функция работает с распределенными массивами, но выполняется в клиентском MATLAB.
Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.