Grid 그리기
http://stackoverflow.com/questions/6580274/matlab-minor-grid-with-solid-lines-grey-color
그래프 조절 가능한 파라메터 다루는 법
http://dorudoru.tistory.com/230
↓출처
(2) 데이터를 plot할 그림 창을 선택하고 Single graphic으로 할 건지 Multi graphic으로 할건지를 선택한다.
(3) plot함수를 호출한다.
(4) Line이나 marker의 property를 선택한다.
(5)축의 한계값, Grid line등을 설정한다.
(6) xlabel, legend, text등으로 그래픽 객체에 라벨링을 한다.
(7) 그래픽 객체를 출력한다.
- Line을 그리는 그래픽 함수들
함수 | 설명 |
plot | x와 y축에 대해서 모두 선형 배율(linear scale)로 된 그래프를 그린다. |
loglog | x와 y축에 대해서 모두 log 배율(linear scale)로 된 그래프를 그린다. |
semilogx | x축에 대해서는 log 배율(linear scale)로 y축에 대해서는 선형 배율(linear scale)로 된 그래프를 그린다. |
Semilogy | x축에 대해서는 선형 배율(linear scale)로 y축에 대해서는 log 배율(linear scale)로 된 그래프를 그린다. |
plotyy | y축의 좌우에 값으로 라벨이 된 그래프를 그린다. |
- plot를 사용한 선 그리기
(1) 2차원 데이터의 선 그리기의 경우
plot(x,y,‘Color+LineStyle+Marker’)
(2) 3차원 데이터의 선 그리기의 경우
plot(x,y,z,‘Color+LineStyle+Marker’)
(3) 여러 쌍의 데이터를 하나의 그림 창에 한꺼번에 그리고 싶은 경우
plot(x1,y1,’CSM1’, x2,y2,’CSM2’,…, xn,yn,’CSMn’,)
- Line을 그리는 함수들에서 사용 가능한 선의 color
MATLAB에서의 symbol | Color (RGB값) | MATLAB에서의 symbol | Color (RGB값) |
c | Cyan (011) | g | green (010) |
m | Magenta (101) | b | blue (001) (default 값) |
y | yellow (110) | w | white (111) |
r | red (100) | k | black (000) |
- Line을 그리는 함수들에서 사용 가능한 선의 style
MATLAB에서의 symbol | Style | MATLAB에서의 symbol | Style |
- | Solid line (default 값) | : | Dotted line |
– | Dashed line | -. | Dash-dot line |
none | No line |
- Line을 그리는 함수들에서 사용 가능한 선의 marker
MATLAB에서의 symbol (용어) | Marker Style | MATLAB에서의 symbol (용어) | Marker Style |
+ (Plus sign) | + | ^ (Upward pointing triangle) | △ |
O (Circle) | O | v (Downward pointing triangle) | ▽ |
* (Asterisk) | * | > (Right pointing triangle) | ▷ |
. (Point) | · | < (Left pointing triangle) | ◁ |
X (Cross) | × | pentagram (Five pointed star) | ☆ |
square (Square) | � | hexagram (Six pointed star) | * |
diamond (Diamond) | ◇ | none | No marker (default 값) |
- 그랙픽 객체에 라벨링을 하는 그래픽 함수들
함수 명 | 설명 |
title | 그래프의 제목을 더한다. |
xlabel | x축에 라벨을 더한다. |
ylabel | y축에 라벨을 더한다. |
zlabel | z축에 라벨을 더한다. |
legend | 그래프에 범례를 더한다. |
text | 그래픽 객체의 임의의 위치에 문자열을 더한다. |
gtext | 마우스를 사용하여 그래픽 객체의 임의의 위치에 문자열을 더한다 |
grid | 그래픽 객체에 격자를 더하거나 없앤다. |
- 극 좌표계에서의 선 그리기
polar(각도,반지름, ’Color+LineStyle+Marker’)
- 좌표계의 변환
(1) 직각 좌표계에서의 데이터를 극 좌표계의 데이터로 변환 하는 함수
[각도,반지름]=cart2pol(x좌표,y좌표)
[각도,반지름,높이]=cart2pol(x좌표,y좌표,z좌표)
(2) 극 좌표계에서의 데이터를 직각 좌표계의 데이터로 변환 하는 함수
[x좌표,y좌표]= pol2cart (각도,반지름)
[x좌표,y좌표,z좌표]=pol2cart(각도,반지름,높이)
(3) 직각 좌표계에서의 데이터를 구면 좌표계의 데이터로 변환 하는 함수
[f,q,반지름]=cart2sph(x좌표,y좌표,z좌표)
(4) 구면 좌표계에서의 데이터를 직각 좌표계의 데이터로 변환 하는 함수
[x좌표,y좌표,z좌표]=sph2cart(f,q,반지름)
- 마우스를 사용한 좌표 값의 입력
[x좌표,y좌표,Button]=ginput(N)
- 그래픽 객체를 파일로 저장하는 방법
print -f<handle> -device -options filename
- 그래픽 객체를 파일로 저장하기 위한 device들
Device명 | 저장 파일 형식 |
Dmeta | 파일 확장자가 EMF인 Meta파일 형식으로 저장한다. |
Dbitmap | 파일 확장자가 BMP인 Bitmap파일 형식으로 저장한다. |
Dps | 파일 확장자가 PS인 흑백 프린터를 위한 PostScript 파일 형식으로 저장한다. (흑백으로 저장됨) |
Dpsc | 파일 확장자가 PS인 칼라 프린터를 위한 PostScript 파일 형식으로 저장한다. (칼라로 저장됨) |
dps2 | 파일 확장자가 PS인 흑백 프린터를 위한 Level 2 PostScript 파일 형식으로 저장한다. (흑백으로 저장됨) |
dpsc2 | 파일 확장자가 PS인 칼라 프린터를 위한 Level 2 PostScript 파일 형식으로 저장한다. (칼라로 저장됨) |
deps | 파일 확장자가 EPS인 흑백 프린터를 위한 Encapsulated PostScript 파일 형식으로 저장한다. (흑백으로 저장됨) |
depsc | 파일 확장자가 EPS인 칼라 프린터를 위한 Encapsulated PostScript 파일 형식으로 저장한다. (칼라로 저장됨) |
deps2 | 파일 확장자가 EPS인 흑백 프린터를 위한 Encapsulated Level 2 PostScript 파일 형식으로 저장한다. (흑백으로 저장됨) |
depsc2 | 파일 확장자가 EPS인 칼라 프린터를 위한 Encapsulated Level 2 PostScript 파일 형식으로 저장한다. (칼라로 저장됨) |
dhpgl | 파일 확장자가 HGL인 Hewlett-Packard 7475A 플로터를 위한 HPGL파일 형식으로 저장한다. |
dill | 파일 확장자가 AL인 Adobe Illustrator 88 호환 파일 형식으로 저장한다. |
djpeg<nn> | 파일 확장자가 JPG인 JPEG 파일 형식으로 저장한다. <nn>은 Jpeg파일의 질을 나타내는 것으로 0에서 100사이의 값을 가진다. |
dtiff | 파일 확장자가 TIF인 압축된TIFF 파일 형식으로 저장한다. |
dtiffnocompression | 파일 확장자가 TIF인 압축되지 않은 TIFF 파일 형식으로 저장한다. |
dpng | 파일 확장자가 PNG인 Portable Network Graphic 24-bit truecolor image 파일 형식으로 저장한다. |
dmfile | 저장할 그림 창을 다시 복원할 MATLAB의 M-file과 MAT-file을 만든다. |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
↓출처:
http://blog.naver.com/PostView.nhn?blogId=bclee78&logNo=65125742&widgetTypeCall=true
가끔 y축 데이터 범위가 완전히 다른 그래프를 작성할 경우가 있다. 이런 경우 MATLAB에서 plotyy의 명령어를 사용할 수 있다.
만약 다음의 데이터 셋이 있다고 가정하자.
clear; close all; clc;
x1 = 0 : 0.1 : 20;
y1 = x1 .* sin(x1);
x2 = 10 : 0.2 : 25;
y2 = 50 * x2;
아래와 같이 그래프를 작성하면
figure(1)
plot(x1, y1,'-b',x2,y2,'--g');
ylabel('y'); xlabel('x');
legend('y1','y2','location','northwest');
아래 그림처럼 MATLAB의 auto-scaling에 의해 y1의 데이터를 확인하기 어렵다.
이런 경우 아래와 같이 plotyy를 이용하면
figure(2)
plotyy(x1,y1,x2,y2);
결과는 위와 같다.
불행히도 plotyy는 plot 명령어처럼 손쉽게 x,y 축의 속성을 바꿀 수 없다.
몇가지 명령어를 사용하여 바꾸어 보았다.
figure(3)
[axeshandles,line1handle,line2handle]=plotyy(x1,y1,x2,y2);
set(line1handle,'linestyle','-','color','blue','linewidth',2);
set(line2handle,'linestyle','-','color','green','linewidth',2);
title('y1 is the blue line, y2 is the green dashed line','fontsize',14);
axes(axeshandles(1));
ylabel('y1=x.*sin(x)','fontsize',14);
axes(axeshandles(2));
ylabel('y2=50*x','fontsize',14);
xlabel('x','fontsize',14);
또한 다음과 같이 x,y 축의 눈금간격을 조절할 경우
figure(4)
[axeshandles,line1handle,line2handle]=plotyy(x1,y1,x2,y2);
set(line1handle,'linestyle','-','color','blue','linewidth',2);
set(line2handle,'linestyle','-','color','green','linewidth',2);
title('y1 is the blue line, y2 is the green dashed line','fontsize',14);
axes(axeshandles(1));
ylabel('y1=x.*sin(x)','fontsize',14);
set(gca,'YTick',[-30 -20 -10 0 10 20 30]);
set(gca,'XTick',[0 6.25 12.5 18.75 25]);
axis([ 0 25 -30 30 ]);
axes(axeshandles(2));
ylabel('y2=50*x','fontsize',14);
xlabel('x','fontsize',14);
set(gca,'YTick',[400 600 800 1000 1200 1400]);
set(gca,'XTick',[0 6.25 12.5 18.75 25]);
axis([ 0 25 400 1400 ]);
이상으로 두개의 범위가 다른 데이터를 하나의 그래프에 표현하는 plotyy에 대하여 알아보았다.
[
http://stackoverflow.com/questions/1719048/plotting-4-curves-in-a-single-plot-with-3-y-axes
http://www.mathworks.com/matlabcentral/fileexchange/9016-addaxis
Loren on the Art of MATLAB
http://blogs.mathworks.com/loren/2009/07/22/computational-geometry-in-matlab-r2009a-part-ii/
'Matlab Tips' 카테고리의 다른 글
Matlab-MuPad (0) | 2013.06.24 |
---|---|
num 형식 -> date 형식 전환 (0) | 2012.12.07 |
색상표 관련 링크 (0) | 2012.12.03 |