Когда вы создаете графику, которая использует Patch
объекты, можно управлять общей цветовой схемой, вызывая colormap
функция. Вы также можете управлять отношениями между палитрой и вашими закрашенными фигурами путем:
Назначение граням определенных цветов
Назначение определенных цветов вершинам, окружающим каждую грань
Способ управления этими отношениями зависит от того, как вы задаете свои закрашенные фигуры: в виде координат x -, y - и z - или в виде данного Face-Vertex.
Если вы создаете 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
объект, описанный на предыдущем рисунке. 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
Если вы создаете закрашенные фигуры с использованием данного 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
Чтобы назначить цвета вершинам, задайте 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