Как данные закрашенной фигуры относятся к палитре

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

  • Присвоение определенных цветов к поверхностям

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

Путем вы управляете этими отношениями, зависит от того, как вы задаете свои закрашенные фигуры: как x-, y-, и z-координаты, или как данные Face-Vertex.

Отношение Палитры к x-, y-, и Массивы z-координаты

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

  • C является n-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

Чтобы присвоить цвета вершинам, задайте C как массив с этими характеристиками:

  • C является массивом m на 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

Отношение палитры к данным Face-Vertex

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

Чтобы присвоить цвета поверхностям, задайте C как массив с этими характеристиками:

  • C является n-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

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

  • C является n-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

Смотрите также

Функции

Свойства

Похожие темы

Была ли эта тема полезной?