필터 지우기
필터 지우기

matlab plot three different colors for three different change (red, yellow, blue)

조회 수: 1 (최근 30일)
K.E.
K.E. 2017년 7월 17일
편집: Stephen23 2017년 7월 17일
In https://www.amcharts.com/demos/line-different-colors-ups-downs/ ,
it describes plotting different colors for up and downs. How can I do the same for matlab? I attach an example
plot([1 2 3 4 5 6 7 8 9 10], [5 5 7 5 2 5 5 8 9 2])
which involves no change as well. I want to have yellow for ups and blue for downs, and red for no change.

답변 (2개)

KSSV
KSSV 2017년 7월 17일
x = [1 2 3 4 5 6 7 8 9 10] ;
y = [5 5 7 5 2 5 5 8 9 2] ;
figure
hold on
for i = 1:length(x)-1
m = (y(i)-y(i+1))/(x(i)-x(i+1)) ;
if sign(m)==0
plot(x(i:i+1),y(i:i+1),'r') ;
elseif sign(m)==-1
plot(x(i:i+1),y(i:i+1),'b') ;
elseif sign(m)==1
plot(x(i:i+1),y(i:i+1),'y') ;
end
end

Stephen23
Stephen23 2017년 7월 17일
편집: Stephen23 2017년 7월 17일
This is MATLAB, so there is no need to use ugly loops or write complicated code. Simple is always best.
X = [1,2,3,4,5,6,7,8,9,10];
Y = [5,5,7,5,2,5,5,8,9,2];
D = [NaN,diff(Y),NaN]
idz = D(1:end-1)==0 | D(2:end)==0;
idp = D(1:end-1)>0 | D(2:end)>0;
idn = D(1:end-1)<0 | D(2:end)<0;
plot(X,Y+0./idz,'r', X,Y+0./idp,'y', X,Y+0./idn,'b')

카테고리

Help CenterFile Exchange에서 View and Analyze Simulation Results에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by