Download presentation
Presentation is loading. Please wait.
1
Ch.3 그래프 속성의 설정과 2차원 그래프
2
그래프 속성의 설정 Plot: 가장 기본적인 그래프 작성함수. 선 모양이나 plot 기호, 색 등을 변경 가능
예: y1=sin(x), y2=cos(x)의 그래프에서 sin(x)는 선이 아닌 원 모양으로, cos(x)는 점선으로 나타내는 경우 원 모양을 ‘o'로, 점선 모양을 ’:‘로 지정 >> x = 0:0.1:2; >> y1 = sin(x); y2 = cos(x); >> plot(x,y1,'o',x,y2,':')
3
그래프 속성의 설정 곡선의 색, 기호, 선의 모양지정 옵션: 선 속성을 나타내는 기호들은 조합하여 사용하는 것이 가능 예: plot(x,y,‘g+:')는 각 데이터 점들을 플러스 기호로 나타내고 그 사이를 녹색의 점선으로 연결 곡선속성 기호 의미 (데이터 점을 표시) . 점 색(8종류) b 파란색 x x표 r 빨강색 o 원 g 녹색 + 플러스기호 c 청록색 * 별표 m 자홍색 s 정방형 y 노란색 d 다이아몬드 w 흰색 v 삼각형(위쪽방향) k 검은색 ^ 삼각형(아래쪽방향) 선 모양 (4종류) - 실선 < 삼각형(왼쪽방향) : 점선 > 삼각형(오른쪽방향) -. 반점선 p 오각형 -- 긴점선 h 육각형
4
그래프 속성의 설정 격자, 라벨, 범례의 추가 grid: 그래프에 격자를 삽입 그래프에 라벨을 삽입: xlabel 함수와 ylabel 함수를 이용 곡선들의 의미를 보여주는 범례를 추가: legend 함수를 이용 예: >> x = 0:0.1:2; y1 = sin(x); y2 = cos(x); >> plot(x,y1,'o',x,y2,':') >> grid on, xlabel('x'), ylabel('y1, y2'), legend('sin(x)','cos(x)')
5
그래프 속성의 설정 그래프에 표시된 범례: 마우스의 왼쪽 버튼으로 선택한 상태로 원하는 장소로 이동 가능
그래프에 표시된 범례: 마우스의 왼쪽 버튼으로 선택한 상태로 원하는 장소로 이동 가능 legend 함수의 마지막 파라미터에 숫자를 지정하여 범례의 위치를 설정 가능 예: % useLegend.m : 범례 옵션의 사용예 x = 0:0.1:2*pi; y = sin(x); z = exp(-x).*cos(x); plot(x,y, x,z,':'); legend('sin(x)','exp(-x)*cos(x)',-1)
6
그래프 속성의 설정 legend 함수의 옵션: legend 함수의 옵션 그래프 상의 범례의 위치
가능한 한 데이터와 겹치지 않는 “최적”위치 1 축의 오른쪽 위 모서리(기본) 2 축의 왼쪽 위 모서리 3 축의 왼쪽 아래 모서리 4 축의 오른쪽 아래 모서리 -1 그래프의 오른쪽
7
그래프 속성의 설정 그래프 축(axis) 속성의 설정 axis: 그래프 축에 대한 다양한 속성들을 설정
예: 0≤x≤π의 범위에서 y=cos(x)의 그래프를 작성 >> x = 0:0.1:2*pi; y = cos(x); plot(x,y
8
그래프 속성의 설정 axis 명령어 옵션: axis 명령어의 옵션 의미 axis([xmin xmax ymin ymax])
axis auto 기본 축 한계로 되돌아감 axis equal x, y, z 축 상의 데이터 단위를 동일화 axis off 축을 제거 axis square 축 박스를 정사각형(정육면체)으로 axis tight 축 한계를 데이터의 범위로 설정 grid on 점선의 격자선을 생성 grid off 격자선을 제거 xlim([xmin xmax]) x축 한계를 설정 ylim([ymin ymax]) y축 한계를 설정
9
그래프 속성의 설정 특수문자의 표현 라벨 함수에서 문자를 설정: 위첨자 문자 ^(해트), 아래첨자 문자 _(언더스코어)나 font 크기의 변경, \fontsize{}, \bf(굵은 문자), \it(이탤릭체), \sl(기울어진 문자(사체)), \rm(표준 로마자) 예: 그래프의 타이틀이나 라벨 안에 그리스 문자나 위첨자, 아래첨자를 표현 x=(1:20)*0.1; y=sin(x); plot(x,y,'o',x,cos(x),':') title('Comparison between sin(\omega_0 {\it t}) wave and cos(\omega_0 {\it t})') xlabel('time in second [{\bf time}]'), ylabel('amplitude [{\bf Volt}]')
10
그래프 속성의 설정 사용 가능한 특수문자 및 기호:
11
그래프의 표현 좌우 세로축을 다르게 사용하기 plotyy: 하나의 그래프 상에서 좌우 y축의 눈금이 다르게 나타나도록 하여 서로 다른 2 개의 곡선을 표시 예: >> x=(0:10)*0.1; plotyy(x,sin(x),x,10*cos(x))
12
그래프의 표현 여러 그래프들을 하나의 그림에 나타내기
subplot: 격자 패턴의 여러 그래프들을 동일한 그림상에 함께 표현 subplot(435), 혹은 subplot(4,3,5): 그림창을 영역들의 4 x 3 배열로 구분하고 해당되는 그래프가 5번째 영역, 즉 2번째 행의 2번째 위치(영역)에 자리 예: fplot(문자열로 표시되는 함수의 그래프)를 이용한 여러 가지 그래프의 표현 >> subplot(221), fplot('exp(sqrt(x)*sin(21*x))',[0 2*pi]) >> subplot(222), fplot('sin(round(x))',[0 10],'--') >> subplot(223), fplot('cos(30*x)/x',[ ],'-.') >> subplot(224), fplot('[sin(x),cos(2*x),1/(x+1)]',[0 5*pi ])
13
그래프의 표현 곡선과 눈금모양의 설정 LineWidth(기본은 0.5 포인트)와 MarkerSize(기본은 6 포인트): 점으로 지정. 하나의 점은 1/72 인치 예: 선 너비가 2 포인트이고 표시기호 크기가 10 포인트인 그래프를 생성 몇 가지 곡선 속성들의 기본값: >> plot(x,y,'LineWidth',2) >> plot(x,y,'p','MarkerSize',10) plot 함수의 옵션 기본값 LineWidth 0.5 MarkerSize 6 MarkerEdgeColor auto MarkerFaceColor none FontSize 10 FontAngle normal
14
그래프의 표현 plot 함수를 사용한 애니메이션 % exAnimation.m : plot 함수를 이용한 애니메이션의 보기
예: 둥근 점의 원 운동 애니메이션 drawnow: 그래픽 버퍼에 들어간 정보를 모두 화면에 표시 % exAnimation.m : plot 함수를 이용한 애니메이션의 보기 close all for x = 0:0.01:10; plot(sin(x),cos(x),'ob'); axis([ ]); axis('square'); drawnow; end
15
그래프의 표현 파라미터 그래프 보기: 반경이 1이고 중심이 (0,0)인 원을 x=cos(2πt), y=sin(2πt)와 같이 파라미터 형태로 나타내는 경우 t는 0부터 1까지 변화 ezplot의 이용: >> T = 0:0.01:1; >> plot(cos(2*pi*T), sin(2*pi*T)), axis square >> ezplot('cos(t)', 'sin(t)', [0 2*pi]); axis square
16
여러 가지 2차원 그래프 로그척도 그래프 loglog: x와 y 축의 척도가 모두 로그척도인 그래프
semilogy: 세로축만 로그척도인 그래프 예: 1≤x≤1000에서 y=x2를 여러 가지 log 척도를 이용하여 도시 % logplot.m : 로그좌표 그래프들의 보기 clear all x = 1:1:1000; y = x.^2; subplot(2,2,1), loglog(x,y), title('loglog(x,y)'), grid on subplot(2,2,2), semilogx(x,y), title('semilogx(x,y)'), grid on subplot(2,2,3), semilogy(x,y), title('semilogy(x,y)'), grid on subplot(2,2,4), plot(x,y), title('y=x^2')
17
여러 가지 2차원 그래프 로그척도 그래프
18
여러 가지 2차원 그래프 함수의 값이 일정한 x-y 평면상의 점들의 집합의 그래프
meshgrid, contour를 이용하여 생성 [X,Y] = meshgrid(x,y) : 사각형 상에 격자를 구성 contour(X,Y,f(X,Y)) : 구성된 사각형 상에서 f의 몇 가지 등고선들을 컬러맵에 해당되는 색으로 표시 예: x2+y2의 등고선 그래프 >> [X Y] = meshgrid(-3:0.1:3, -3:0.1:3); >> contour(X, Y, X.^2 + Y.^2); axis square
19
여러 가지 2차원 그래프 peaks: Gauss 분산으로부터 얻어진 2변수 함수를 표현
>> [x,y,z] = peaks; pcolor(x,y,z) >> shading interp >> hold on >> contour(x,y,z,20,'k') >> hold off
20
여러 가지 2차원 그래프 clabel 함수 clabel: 수준곡선들의 크기(높이)를 그래프 안에 기입
예: -2≤x,y≤2에서 함수 z=(x+y)*exp(-x2-y2)에 대하여 10개의 수준곡선들에 대한 크기를 표시 % clabelUsage.m : 수준곡선 크기를 그래프에 기입 clear all x = -2:0.1:2; y = -2:0.1:2; [X,Y] = meshgrid(x,y); Z = (X+Y).*exp(-X.^2-Y.^2); ct=contour(X,Y,Z,10); clabel(ct)
21
여러 가지 2차원 그래프 필드 그래프: quiver quiver: 벡터 필드나 화살표들의 배열을 표시
예: x축을 향하는 흡인력과 y축으로부터의 반발력의 조합에 해당하는 “등마루 점”이 있는 벡터 필드의 그래프를 도시 >> [x, y] = meshgrid(-1.1:0.2:1.1, -1.1:0.2:1.1); >> quiver(x, -y); axis equal; axis off
22
여러 가지 2차원 그래프 quiver는 2차원의 유체흐름 해석에 유용
먼저 2차원 데이터를 작성하고 gradient 함수로 기울기를 계산한 다음 contour 함수를 이용하여 수준곡선을 나타낸 후 quiver 함수로 각각의 벡터를 표시 보기: -2≤x,y≤2에서 함수 z=(x+y)*exp(-x2-y2)에 대한 quiver의 사용 % quiverUsage.m : quiver 함수의 사용예 clear all x = -2:0.2:2; y = -2:0.2:2; [X,Y] = meshgrid(x,y); Z = (X+Y).*exp(-X.^2-Y.^2); [dX dY]=gradient(Z,0.5,0.5); contour(X,Y,Z,10); hold on quiver(X,Y,dX,dY) hold off
23
여러 가지 2차원 그래프 극좌표 그래프 polar: 극좌표 그래프를 작성
보기: 0≤θ≤6π에서 r=1+2cosθ의 그래프를 작성 >> th = 0:pi/180:6*pi; r = 1 + 2*cos(th); polar(th,r)
24
여러 가지 2차원 그래프 막대그래프 bar 함수 bar: 막대그래프를 작성
보기: x=[ ], y=[ ]인 경우의 막대그래프 >> x=[ ]; y=[ ]; bar(x,y)
25
여러 가지 2차원 그래프 보기: 반별로 수능 1~5등급에 해당하는 학생 수
수능 등급을 행벡터 x로, 반별 학생수를 행렬 y로 정의하고 bar를 호출 barh: 가로와 세로축을 교환 수능 등급 1반 2반 3반 1등급 5 7 4 2등급 12 11 15 3등급 19 20 17 4등급 6 5등급 2 1 3
26
여러 가지 2차원 그래프 % gradeBar.m : bar 및 barh 함수를 이용한 막대그래프의 보기
x = [ ]; class1 = [ ]'; class2 = [ ]'; class3 = [ ]'; y = [class1 class2 class3]; % 학생수 행렬 subplot(1,2,1) bar(x,y) xlabel('Class'), ylabel('Number of students'); legend('Class1','Class2','Class3') subplot(1,2,2) barh(x,y) xlabel('Number of students'), ylabel('Class'),;
27
여러 가지 2차원 그래프 hist 함수 hist: 데이터의 분포를 구간별로 표시
예: 임의의 수 1000개로 이루어지는 데이터를 20개의 동일간격으로 분류하여 표시 >> hist(randn(1000,1),20)
28
여러 가지 2차원 그래프 출력인수를 지정하는 경우 첫 번째 출력인수로 빈도 수, 두 번째 출력인수로 저장소 위치들을 지정
입력 y가 행렬이면 각 열들에 대하여 저장소들이 만들어지며 분류된 막대그래프들이 생성 보기: % histExam.m : hist 함수의 사용 randn('state',1); y = exp(randn(1000,1)/3); subplot(2,2,1) hist(y) title('1000-by-1 data vector, 10 bins') subplot(2,2,2) hist(y,25), title('25 bins') subplot(2,2,3) hist(y,min(y):.1:max(y)), title('Bin width 0.1'), Y = exp(randn(1000,3)/3); subplot(2,2,4) hist(Y), title('1000-by-3 data matrix')
29
여러 가지 2차원 그래프
30
여러 가지 2차원 그래프 면적 그래프 area 함수 포개 올려진 면적그래프를 생성 보기:
% gradeArea.m : 면적 그래프의 보기 clear all x = [ ]; class1 = [ ]'; class2 = [ ]'; class3 = [ ]'; y = [class1 class2 class3]; % 학생수 행렬 area(x,y)
31
여러 가지 2차원 그래프 pie 함수 파이 차트를 작성
보기: x=[ ], y=[ ]을 정의하고 pie 함수를 호출 >> x=[ ]; y=[ ]; pie(x,y) >> legend('grade 1', 'grade 2','grade 3','grade 4','grade 5')
32
여러 가지 2차원 그래프 계단모양 그래프 이산 데이터를 표시하는 경우에 편리 stairs: 계단모양 그래프를 작성
예: 0≤x≤2π에서 y=sin(x)에 대한 계단모양 그래프 stairs 함수로부터 계단모양 데이터를 얻은 다음 plot 함수를 이용하여 계단모양 그래프를 작성 가능 >> x = 0:0.1:2*pi; y = sin(x); stairs(y)
33
여러 가지 2차원 그래프 stem 그래프 이산 신호의 임펄스 응답을 나타낼 때 이용 stairs 함수와 같은 용도로 사용 예:
>> x = 0:0.1:2*pi; y = sin(x); stem(y)
34
여러 가지 2차원 그래프 errorbar 그래프 나타낸 데이터의 신뢰도 등을 표시할 때 편리
데이터와 오차 데이터를 지정: 오차 데이터의 1번째는 오차의 상한, 2번째는 오차의 하한 예: >> x = 0:0.5:2*pi; y = sin(x); >> lowlimit = 0.1*ones(size(x)); highlimit = 0.3*ones(size(x)); >> errorbar(x,y,lowlimit,highlimit))
35
여러 가지 2차원 그래프 다각형 채우기: fill 함수 fill: plot과 유사한 방법으로 작용
fill(x,y,[r g b]): 꼭지점이 x(i), y(i)로 지정되는 다각형을 색으로 채움 [r g b]: r, g 및 b는 [0,1] 범위의 스칼라로서 각각 다각형을 채우는 색에서의 빨강, 초록, 그리고 파랑의 수준을 결정 예: fill(x,y,[0 1 0])은 순수한 초록, fill(x,y,[1 0 1])은 자홍색 예: >> x = [ ]; y = [ ]; fill(x,y,[1 0 1]))
36
MATLAB의 2차원 그래프 함수 2차원 그래프 함수의 요약: 함수 생성되는 그래프 plot, ezplot
간단한 x-y 그래프 loglog 축들이 로그 척도인 그래프 semilogx x 축이 로그 척도인 그래프 semilogy y 축이 로그 척도인 그래프 plotyy 왼쪽과 오른쪽에 y 축이 있는 x-y 그래프 polar, ezpolar 극좌표 그래프 fplot 함수 그래프 작성 fill 다각형 채우기 area 면적이 색으로 채워진 그래프 막대 그래프 bar barh 수평 막대 그래프 hist 히스토그램 pie 파이 차트 comet 동영상화시킨 혜성모양의 x-y 그래프 errorbar 에러표시 막대그래프 quiver 속도벡터 그래프 scatter 분산 그래프 stairs 계단 그래프
Similar presentations