exponenta event banner

Как данные исправления относятся к карте цветов

При создании графических объектов, использующих Patch объекты, можно управлять общей цветовой схемой, вызвав colormap функция. Вы также можете управлять взаимосвязью между картой цветов и патчем:

  • Назначение определенных цветов граням

  • Назначение определенных цветов вершинам, окружающим каждую грань

Способ управления этими отношениями зависит от способа указания исправлений: координаты x, y и z или данные вершин граней.

Отношение карты цветов к массивам координат x, y и z

При создании Patch объект с использованием массивов координат x, y и z, CData имущества Patch объект содержит массив индексирования C. Этот массив управляет взаимосвязью между картой цветов и патчем. Чтобы назначить цвета граням, укажите C как массив со следующими характеристиками:

  • C - массив n-by-1, где n - количество граней.

  • Значение при C(i) управляет цветом грани i.

Вот пример C и его связь с цветовой картой и тремя гранями. Значение C(i) управляет цветом грани, определяемой вершинами (X(i,:), Y(i,:)).

Наименьшее значение в C является 0. Он сопоставляется с первой строкой в карте цветов. Наибольшее значение в C является 1и сопоставляется с последней строкой в карте цветов. Промежуточные значения C отображается линейно к промежуточным строкам в карте цветов. В этом случае C(2) отображает цвет, расположенный примерно на две трети от начала цветовой карты. Этот код создает Patch объект, описанный на предыдущей иллюстрации.

X = [0 0 5; 0 0 5; 4 4 9];
Y = [0 4 0; 3 7 3; 0 4 0];
C = [0; .6667; 1];
p = patch(X,Y,C);
colorbar

Figure contains an axes. The axes contains an object of type patch.

Чтобы назначить цвета вершинам, укажите C как массив со следующими характеристиками:

  • C - массив m-by-n, где m - число вершин на грань, а n - число граней.

  • Значение при C(i,j) управляет цветом в вершине i лица j.

Вот пример C и его отношение к карте цвета и шести вершинам. Значение C(i,j) управляет цветом вершины в (X(i,j), Y(i,j)).

Как и для граней сегментов, MATLAB ® масштабирует значения вC к числу строк в карте цветов. В этом случае наименьшее значение равно C(2,2)=1и он сопоставляется с первой строкой в карте цветов. Наибольшее значение - C(3,1)=6и сопоставляется с последней строкой в карте цветов.

Этот код создает Patch объект, описанный на предыдущей иллюстрации. FaceColor свойство имеет значение 'interp' для наложения цветов вершин на каждой грани.

clf
X = [0 3; 0 3; 5 6];
Y = [0 3; 5 6; 0 3];
C = [5 4; 2 0; 6 3];
p = patch(X,Y,C,'FaceColor','interp');
colorbar

Figure contains an axes. The axes contains an object of type patch.

Связь карты цветов с данными граней-вершин

При создании фрагментов с использованием данных граней-вершин FaceVertexCData имущества Patch объект содержит массив индексирования C. Этот массив управляет взаимосвязью между картой цветов и патчем.

Чтобы назначить цвета граням, укажите C как массив со следующими характеристиками:

  • C - массив n-by-1, где n - количество граней.

  • Значение при C(i) управляет цветом грани i.

Вот пример C и его связь с цветовой картой и тремя гранями.

Наименьшее значение в C является 0и он сопоставляется с первой строкой в карте цветов. Наибольшее значение в C является 1и соответствует последнему значению в карте цветов. Промежуточные значения C отображается линейно к промежуточным строкам в карте цветов. В этом случае C(2) отображает цвет, расположенный примерно на две трети от нижней части карты цветов.

Этот код создает Patch объект, описанный на предыдущей иллюстрации. FaceColor свойство имеет значение 'flat' отображение цветов карты цветов вместо цвета по умолчанию, который является черным.

clf
vertices = [0 0; 0 3; 4 0; 0 4; 0 7; 4 4; 5 0; 5 3; 9 0];
faces = [1 2 3; 4 5 6; 7 8 9];
C = [0; 0.6667; 1];
p = patch('Faces',faces,'Vertices',vertices,'FaceVertexCData',C);
p.FaceColor = 'flat';
colorbar

Figure contains an axes. The axes contains an object of type patch.

Чтобы назначить цвета вершинам, задайте FaceVertexCData имущества Patch объект как массив C с этими характеристиками:

  • C - массив n-by-1, где n - число вершин.

  • Значение при C(i) управляет цветом в вершине i.

Вот пример C и его отношение к карте цвета и шести вершинам.

Как и для граней сегментов, MATLAB масштабирует значения в C к числу строк в карте цветов. В этом случае наименьшее значение равно C(2)=1и он сопоставляется с первой строкой в карте цветов. Наибольшее значение - C(6)=6и сопоставляется с последней строкой в карте цветов.

Этот код создает Patch объект, описанный на предыдущей иллюстрации. FaceColor свойство имеет значение 'interp' для наложения цветов вершин на каждой грани.

clf
vertices = [0 0; 0 5; 5 0; 3 3; 3 6; 6 3];
faces = [1 2 3; 4 5 6];
C = [5; 1; 4; 3; 2; 6];
p = patch('Faces',faces,'Vertices',vertices,'FaceVertexCData',C);
p.FaceColor = 'interp';
colorbar

Figure contains an axes. The axes contains an object of type patch.

См. также

Функции

Свойства

Связанные темы