Как Закрашенная фигура Данных относится к Палитре

Когда вы создаете графику, которая использует 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

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

Чтобы назначить цвета вершинам, задайте 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 объект, описанный на предыдущем рисунке. The 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.

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

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

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

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

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

Вот пример C и его отношение к палитре и трем граням.

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

Этот код создает Patch объект, описанный на предыдущем рисунке. The 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 на 1, где n - количество вершин.

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

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

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

Этот код создает Patch объект, описанный на предыдущем рисунке. The 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.

См. также

Функции

Свойства

Похожие темы