MATLAB Answers

How to make a plot with different colors to represent different data values/thresholds?

조회 수: 1(최근 30일)
Ivy Chen
Ivy Chen 2018년 6월 28일
댓글: Ivy Chen 2018년 7월 2일
I need to generate a plot have a couple of elements below: ▪ Small dots when State 5 = green, State 3 = yellow ▪ Big circles when thresholds occur: State 5 = orange, State 3 = red
Appreciate tips/assistance on this.

답변(1개)

D. Plotnick
D. Plotnick 2018년 6월 28일
You can use a nested switch-case statement. Lets say you have data x,y,state1,state2.
switch state1
case 5
switch state2
case 1
markerSize = 3;
color = 'r'
marker = '.'
case 2
""
""
""
end
case 3
""
""
""
end
end
mn = [color,marker]
plot(x,y,mn,'MarkerSize',markerSize);
You should be able to fill in the rest: nested switches are good for this, you will just have to appropriately define you cases for each switch.
  댓글 수: 3
Ivy Chen
Ivy Chen 2018년 7월 2일
this is what I have, but it says that "SWITCH expression must be a scalar or string constant." Not sure where the mistake is... thanks for help.
C_N04 = TexasPorkButt.C_N04(Idx);
VE = TexasPorkButt.True_VE(Idx);
Tracking = TexasPorkButt.Tracking(Idx);
Code_T = TexasPorkButt.C_A_code_tracks(Idx);
Carrier_T = TexasPorkButt.C_A_carrier_tracks(Idx);
switch Tracking
case strcmp(Tracking,'TRUE')
switch (Code_T)
case 0
markerSize = 3;
color = 'black';
marker = '-';
case 1
markerSize = 3;
color = 'yellow';
marker = '.';
end
switch (Carrier_T)
case 1
markerSize = 3;
color = 'green';
marker = '.';
end
case strcmp(Tracking,'FALSE')
switch (Carrier_T)
case 0
markerSize = 3;
color = 'orange';
marker = 'o';
end
switch (Code_T)
case 0
markerSize = 3;
color = 'red';
marker = 'o';
end
end
mn = [color,marker];
plot(C_N04,VE,mn,'MarkerSize',markerSize);

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

Community Treasure Hunt

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

Start Hunting!

Translated by