시간에 따라 변하는 현상을 보기 위해서,
한 페이지에 한 번에 20개 정도의 선을 plot 할 때가 있습니다.
자동으로 시간에 따라 gradation으로 색이 변하게 plot하는 방법을 찾아보던 중
저에게 딱 맞는 방법을 찾았습니다.
가령, 다음과 같이 부터
까지 한번에 plot을 하되,
색이 점차적으로 변하도록 해보겠습니다.
우선 MATLAB 명령 창에 입력하는 코드는 다음과 같습니다.
>> x = [-30:30]; : plot할 x의 범위는 -30부터 30까지
>> fx = @(x) -x.^2; : 정의
>> C=jet; : 내장된 색깔 불러오기 (64가지 색)
>> for i = 1:20 : i = 1부터 20까지
y = i*fx(x); : y을 계산하고
CC = C(ceil((i/20)*64),:); : 64가지 색을 대략 20등분하여 차례로 사용하기
(ceil을 통해 i/20을 정수로 바꿔주었습니다)
plot(x,y,'Color',CC); : color는 방금 계산한 CC가 가리키는 색
hold on; drawnow; : plot 유지시키고, loop 돌며 바로바로 plot시키기
end
참고로 jet는 명령창에서 호출하면 다음과 같이 생겼습니다.
>> jet
ans =
0 0 0.5625
0 0 0.6250
0 0 0.6875
0 0 0.7500
0 0 0.8125
0 0 0.8750
0 0 0.9375
0 0 1.0000
0 0.0625 1.0000
0 0.1250 1.0000
0 0.1875 1.0000
0 0.2500 1.0000
0 0.3125 1.0000
0 0.3750 1.0000
0 0.4375 1.0000
0 0.5000 1.0000
0 0.5625 1.0000
0 0.6250 1.0000
0 0.6875 1.0000
0 0.7500 1.0000
0 0.8125 1.0000
0 0.8750 1.0000
0 0.9375 1.0000
0 1.0000 1.0000
0.0625 1.0000 0.9375
0.1250 1.0000 0.8750
0.1875 1.0000 0.8125
0.2500 1.0000 0.7500
0.3125 1.0000 0.6875
0.3750 1.0000 0.6250
0.4375 1.0000 0.5625
0.5000 1.0000 0.5000
0.5625 1.0000 0.4375
0.6250 1.0000 0.3750
0.6875 1.0000 0.3125
0.7500 1.0000 0.2500
0.8125 1.0000 0.1875
0.8750 1.0000 0.1250
0.9375 1.0000 0.0625
1.0000 1.0000 0
1.0000 0.9375 0
1.0000 0.8750 0
1.0000 0.8125 0
1.0000 0.7500 0
1.0000 0.6875 0
1.0000 0.6250 0
1.0000 0.5625 0
1.0000 0.5000 0
1.0000 0.4375 0
1.0000 0.3750 0
1.0000 0.3125 0
1.0000 0.2500 0
1.0000 0.1875 0
1.0000 0.1250 0
1.0000 0.0625 0
1.0000 0 0
0.9375 0 0
0.8750 0 0
0.8125 0 0
0.7500 0 0
0.6875 0 0
0.6250 0 0
0.5625 0 0
0.5000 0 0
jet의 사이즈를 통해 총 64개의 색이 RGB값으로 저장되어있음을 알 수 있습니다.
>> size(jet)
ans =
64 3
'Engineering > Matlab' 카테고리의 다른 글
Matlab 내장합수: ceil (0) | 2016.05.24 |
---|---|
Matlab: drawnow, 실시간으로 그래프 그리기 (0) | 2016.05.09 |
Mablab: 그래프 편집하기 (1) | 2016.05.09 |