Когда вы создаете объемные поверхностные диаграммы с помощью функций, таких как surf
или mesh
, можно настроить цветовую схему путем вызывания функции colormap
. Если вы хотите дальнейшее управление внешним видом, можно изменить направление или шаблон цветов через поверхность. Эта индивидуальная настройка требует изменяющихся значений в массиве, который управляет отношением между поверхностью и палитрой.
Свойство CData
объекта Surface
содержит массив индексации C
, который сопоставляет определенные местоположения в вашем графике с, раскрашивает палитру. C
имеет следующее отношение к поверхностному z = f (x, y):
C
одного размера как Z
, где Z
является массивом, содержащим значения f (x, y) в каждом узле решетки на поверхности.
Значение в C(i,j)
управляет цветом в местоположении сетки (i,j)
на поверхности.
По умолчанию C
равен Z
, который соответствует цветам, меняющимся в зависимости от высоты.
По умолчанию область значений C
отображается линейно в количестве строк в массиве палитры.
Например, 3х3 выборка Z = X + Y
имеет следующее отношение к палитре, содержащей записи N
.
Заметьте, что наименьшее значение (-2
) сопоставляет с первой строкой в палитре. Самое большое значение (2
) сопоставляет с последней строкой в палитре. Промежуточные значения в C
отображаются линейно в промежуточных строках в палитре.
Предыдущая объемная поверхностная диаграмма показывает, как цвета присвоены вершинам на поверхности. Однако поведение по умолчанию должно заполнить поверхности закрашенной фигуры со сплошным цветом. Тот сплошной цвет основан на цветах, присвоенных окружающим вершинам. Для получения дополнительной информации см. описание свойства FaceColor
.
При использовании значения по умолчанию C=Z
цвета меняются в зависимости от изменений в Z
.
[X,Y] = meshgrid(-10:10); Z = X + Y; s = surf(X,Y,Z); xlabel('X'); ylabel('Y'); zlabel('Z');
Можно изменить это поведение путем определения C
, когда вы создаете поверхность. Например, цвета на этой поверхности меняются в зависимости от X
.
C = X; s = surf(X,Y,Z,C); xlabel('X'); ylabel('Y'); zlabel('Z');
Также можно установить свойство CData
непосредственно. Эта команда заставляет цвета меняться в зависимости от Y
.
s.CData = Y;
Цвета не должны следовать за изменениями в одной размерности. На самом деле CData
может быть любым массивом, который одного размера как Z
. Например, цвета на этой плоскости следуют за формой функции sinc.
R = sqrt(X.^2 + Y.^2) + eps; s.CData = sin(R)./(R);