Когда вы создаете графику, которая использует объекты 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
, описанный на предыдущей иллюстрации. 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
, описанный на предыдущей иллюстрации. 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