My rectangle should have a determined color represented by a value

조회 수: 3 (최근 30일)
Philipp Mueller
Philipp Mueller 2016년 9월 5일
댓글: Neda 2017년 11월 8일
I have 2 patch objects which should be placed with a determined color (represented by a value). I did not implement it because I dont know how it works. So the rectangle 1 should have the value 50 and the rectangle 2 should have the value 75. The colorbar should start from 0 to 100. Thank you in advance.
v = [0 0; 1 0; 1 1; 0 1;5 5; 10 5;10 10;5 10];%Rectangle 1 and 2
f = [1 2 3 4; 5 6 7 8];
patch('Faces',f,'Vertices',v,'FaceColor','green')
colorbar

채택된 답변

Stephen23
Stephen23 2016년 9월 5일
편집: Stephen23 2016년 9월 5일
The easiest way is to use caxis, like this:
V = [0,0;1,0;1,1;0,1;5,5;10,5;10,10;5,10];
F = [1,2,3,4;5,6,7,8];
C = [50;75];
patch('Faces',F,'Vertices',V,'FaceVertexCData',C,'FaceColor','flat')
colormap(parula)
colorbar
caxis([0,100]) % set the color limits
which generate this (you can pick whatever colormap suits you best):
TIP: learn that many many operations and functions in MATLAB are designed to be fastest and neatest without using ugly loops. Learn to read the documentation, and how to write efficient code:
  댓글 수: 1
Neda
Neda 2017년 11월 8일
How about if we need to change the colour of circle based on their values, and circle superimposed on the image with rectangle which does have 'Curvature',[1 1].

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Thorsten
Thorsten 2016년 9월 5일
편집: Thorsten 2016년 9월 5일
50 and 75 are not valid colorvalues in Matlab. Valid is an RGB triplet in the range [0, 1]. So I assumed that 50 and 75 is an index into a colormap. I choose 'gray', but you can any other valid colormap, like 'parula' or 'jet', for example:
Nfaces = 2;
facecolind = [50 70];
cmap = gray(100);
for i = 1:Nfaces
patch('Faces',f(i,:),'Vertices',v,'FaceColor', cmap(facecolind(i),:))
end
colormap(cmap)
h = colorbar
h.TickLabels = h.Ticks*100
  댓글 수: 3
Adam
Adam 2016년 9월 5일
Sounds like you want the jet colourmap then. You could create your own to be more to your taste, but jet does run from blue through green up to red.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Blue에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by