[MATLAB] 데이터 시각화 함수 정리

young·2023년 10월 11일

매트랩 함수 정리

목록 보기
1/1
post-thumbnail

매트랩 함수 정리

내가 보려고 정리하는 실제 업무에서 많이 사용하는 매트랩 함수 정리글


1. MATLAB과 시각화?

matplolib은 MATLAB에서 따왔다

파이썬으로 데이터 분석과 시각화 한번이라도 해본 사람이라면 써봤을 라이브러리,
matplotlib은 -이름의 mat에서 알 수 있지만- MATLAB의 시각화 형태를 많이 빌려왔다. (함수명이 거의 똑같다)
그만큼 MATLAB은 시각화에서 강력한 기능을 제공하는데, 사용자가 손쉽게 시각화를 할 수 있도록 여러 함수를 제공하고 시각화 형태를 객체화하여 시각화 시 자유로운 컨트롤이 가능하다.
많은 시각화 함수 중 실제 업무에서 많이 사용중인 함수들과 사용법, 예시를 정리했다.
모든 예시 그림은 공식 문서와 MATLAB 커뮤니티인 matlabcentral에서 가져왔다.

유의사항 : Matlab Statistics and Machine Learning Toolbox에 있는 함수가 포함되어 툴박스가 없는 경우 함수가 구동되지 않을 수 있음

2. 기본 plotting 함수

그래프의 기본 형태를 생성하는 함수

plot

  • 가장 기본적인 line, dot plot 지정 함수
  • 기본 형태 : plot(x, y, LineSpec)
  • x와 y를 어떻게 넣어주냐에 따라 line graph, dot graph, xline, yline, one point plot 등 다양한 형태로 응용이 가능한 함수
  • plot 공식 문서
  • output 예시

histogram

  • 히스토그램 생성 함수
  • 기본 형태 : histogram(x)
  • bin 수와 bin 경계를 설정 가능
  • ※주의사항 : nbinsedges 는 한 코드에 같이 쓰지 않음
  • histogram 공식 문서
  • output 예시

histfit

  • 히스토그램과 확률 밀도 함수를 같이 시각화하는 함수
  • 기본 형태 : histfit(data)
  • 디폴트 분포 : 정규 분포
  • kernel 분포 피팅 히스토그램 : histfit(data, nbins,'kernel')
  • histfit 공식 문서
  • output 예시

boxplot

  • boxplot 생성 함수
  • 기본 형태 : boxplot(x)
  • 그룹화 변수 지정시 그룹별로 boxplot 생성 가능
    (boxplotGroup이 사용이 더 편해서 이 함수를 더 많이 사용함)
  • Notch, line option 등 여러 plotting 옵션이 있음
  • outlier 모양, 상자 모양도 설정 가능
  • percentile을 다르게 하고 싶은 경우 plot + errorbar + patch를 쓰면 구현 가능
  • boxplot 공식 문서
  • output 예시

boxplotGroup

  • 그룹별 boxplot 생성 함수
  • 기본 형태 : boxplotGroup(x)
  • 업무에서 많이 사용하는 형태 : boxplotGroup(ax, y, 'Widths', widths, 'PrimaryLabels', LabelName)
  • 그룹별 color 지정 가능, input data를 1xn cell array of mx1 vectors 형태로 넣어주면 그룹별로 plotting을 해줌
  • histcount, patch, plot을 동시에 사용하면 그룹별 평균과 분포 시각화가 모두 가능함
  • ※주의사항 : 애드온 함수이므로 MATLAB에서 애드온에서 함수를 검색하여 설치해준 뒤 사용해야 함수 이용 가능
  • boxplotGroup 공식 문서
  • boxplot과 히스토그램 동시에 plotting하기
  • output 예시

scatter

  • 2차원 산점도 plotting 함수
  • 기본 형태 : scatter(x,y)
  • 속성에서 마커 형태, 크기, 색, 투명도 지정 가능
  • scatter 공식 문서
  • output 예시

gscatter

  • 그룹별 산점도를 plotting하는 함수
  • 기본 형태 : gscatter(x,y,g)
  • g로 그룹화되는 x와 y 산점도 플롯 생성
  • x와 y의 크기는 동일해야함
  • g의 값은 x와 y에 모두 대응되어야 함 => g, x, y의 크기는 동일함
  • 그룹별 컬러는 사용자가 지정 가능
  • gscatter 공식 문서
  • output 예시

scatterhist

  • 산점도와 단변량 히스토그램 생성 함수
  • 기본 형태 : scatterhist(x,y)
  • 히스토그램의 형태를 막대가 아닌 확률분포로 설정 가능 (확률 분포는 지원되는 확률 분포에서 설정 가능)
  • marginal chart를 히스토그램이 아닌 상자 플롯으로 변경 가능
  • 이변량 데이터 분석시 유용한 시각화가 가능함
  • scatter, histfit, fitdist, boxplot 만큼의 커스터마이징은 어려우나 기본적인 산점도와 히스토그램 옵션 설정이 가능함
  • scatterhist 공식 문서
  • output 예시

bar

  • 막대 그래프 생성 함수
  • 기본 형태 : bar(y)
    -bar(x,y) : x 위치별 막대 그래프 생성
  • style 옵션 - 'grouped' : 각 그룹을 x 값을 중심으로 인접해 있는 막대로 표시 / 'stacked' : 각 그룹별 누적 막대 표시
  • bar 공식 문서
  • output 예시

pareto

  • 파레토 차트 생성 함수
    파레토 차트는 내림차순으로 정렬된 막대로 구성된 막대 차트이며 누적 분포를 표시하는 선을 포함한 차트
  • 기본 형태 : pareto(y)
  • bar plot과 누적 분포를 동시에 그려줌
  • pareto(y,x) : 막대의 x 좌표(또는 레이블)를 지정
  • 항상 데이터의 내림차순으로 정렬하여 플롯팅되므로 다른 순서의 정렬로 시각화를 원한다면 bar + plot 방식으로 구현할 수 있음
  • pareto 공식 문서
  • output 예시

loglog

  • 데이터를 로그 스케일로 plotting하는 함수
  • 기본 형태 : loglog(x,y)
  • x축과 y축에 밑이 10인 로그 스케일을 사용하여 x 좌표와 y 좌표를 플로팅
  • 밑 값 변경 가능
  • loglog 공식 문서
  • output 예시

hold on / hold off

  • plotting 중첩 / 중첩 해제 함수
  • ;을 붙이지 않아도 됨
  • hold on : 좌표축에 플롯이 새로 추가될 때 기존 플롯이 삭제되지 않도록 현재 좌표축의 플롯을 유지
  • hold off : 유지 상태를 꺼짐으로 설정하여, 좌표축에 플롯이 새로 추가될 경우 기존 플롯을 지우고 모든 axes 속성을 재설정
  • hold(ax,___) : 현재 좌표축 대신 ax로 지정된 좌표축의 유지 상태를 설정
  • 사용법 예시
plot(x, y1)
hold on
plot(x, y2)
hold off

3. 시각화 옵션 함수

그래프를 생성한 뒤 그래프의 세부 속성을 조정하는 함수

title

  • 그래프에 지정한 제목을 설정하는 함수
  • 기본 형태 : title(titletext)
  • 업무에서 많이 사용하는 형태 : title('titleText', 'FontSize', 15, 'FontWeight', 'bold')
  • 변수 값, LaTex 문법 등 텍스트 값 입력이 자유로움
  • title 공식 문서
  • output 예시

xlabel / ylabel

  • x축과 y축 레이블을 지정하는 함수
  • 기본 형태: xlabel(txt) ylabel(txt)
  • title과 마찬가지로 텍스트 속성 지정 가능, 객체화 가능
  • xlabel 공식 문서 / ylabel 공식 문서

xlim / ylim

  • x축, y축 상한, 하한값을 설정하는 함수
  • 기본 형태 : xlim([xmin xmax]) / ylim([ymin ymax])
  • 자동 축 제한, 수동 축 제한 설정 가능
  • xlim 공식 문서 / ylim 공식 문서

xticks / yticks

  • 좌표축의 눈금값을 설정하는 함수
  • 기본 형태 : xticks(ticks) / yticks(ticks)
  • 눈금값 제거 : xticks([]) / yticks([])
  • 눈금값 자동, 수동 설정 가능
  • tick의 형태는 증가하는 벡터 형태로 지정해야함
  • ※주의사항 : 눈금값을 상수로 지정하는 것이 아닌 벡터를 생성하여 눈금값으로 넣을 때에는 '[ ]'가 아닌 xticks(N:N:N) 형태로 넣어줘야 에러가 나지 않음
  • xticks 공식 문서 / yticks 공식 문서

xticklabels / yticklabels

  • 눈금값의 레이블을 지정하는 함수
  • 기본 형태 : xticklabels(labels) / yticklabels(labels)
  • string 형태로 레이블을 넣고싶은 경우 cell type으로 label을 지정해주어야 함
    • ex) xticklabels({'x = 0','x = 5','x = 10'})
  • double 벡터 형태로 레이블을 넣고싶은 경우 '[ ]' 가 아닌 xticklabels()에 그대로 벡터를 생성해주어야 함
    • ex) xticks(0:pi:6*pi)
  • 자동, 수동 설정 가능
  • xticklabels 공식 문서 / yticklabels 공식 문서

legend

  • 그래프의 범례 위치 조정, 범례 레이블 설정, 범례 지정하지 않음 등 범례와 관련된 설정을 조정하는 함수
  • 기본 형태 : legend(labels)
  • 플로팅된 각 데이터 계열에 대한 설명 레이블을 포함한 범례 생성
  • legend('show') : 범례 나타내기
  • legend('off') : 범례 삭제
  • legend('Location','northwest') : 범례 위치 설정
  • 범례로 보여주는 값과 일부 데이터의 범례만 보여주기 설정 가능
  • 시각화 함수에 ('HandleVisibility', 'off') 옵션을 같이 사용하면 쉬운 활용 가능
  • legend 공식 문서
  • output 예시

sgtitle

  • 서브플롯들의 총괄 제목을 생성하는 함수
  • 기본 형태 :sgtitle(txt)
  • ※ 주의사항 : R2018b부터 사용 가능
  • title 에서 사용하는 텍스트 속성 모두 이용 가능
  • sgtitle 공식 문서
  • output 예시

lines / hsv

  • 지정된 수에 맞는 색을 생성하는 함수
  • lines(m) : m개 색으로 구성된 line 컬러맵 반환
  • hsv(m) : m개 색으로 구성된 hsv 컬러맵 반환
  • 개인적으로 hsv 색보다 lines 색이 눈이 편해서 lines를 더 많이 이용중
  • lines 공식 문서
  • hsv 공식 문서
  • lines 예시
  • hsv 예시

linkaxes

  • 그래프 축에 대한 동기화
  • 기본 형태 : linkaxes(ax)
  • 지정된 좌표축 벡터에 대한 제한을 동기화
  • subplot, 이중축 등 여러 형태에서 응용 가능
  • 사용 예시 : linkaxes([ax1 ax2 ax3],'xy')
  • linkaxes 공식 문서
  • output 예시

yyaxis

  • 그래프 이중축 생성
  • 기본 형태 : yyaxis left / yyaxis right
  • yyaxis left :왼쪽 y축과 연결된 현재 좌표축의 측면(ax)을 활성화
  • yyaxis right : 오른쪽 y축에 연결된 현재 좌표축의 측면(ax)을 활성화
  • 각 좌표축에 대한 대부분 옵션에 대한 커스터마이징 가능
  • yyaxis 공식 문서
  • output 예시

4. 추가 plotting 함수

  • 보조 시각화로 기능하는 함수

text

  • 그래프에 텍스트를 추가하는 함수
  • 기본 형태 : text(x, y, txt)
  • txt로 지정된 텍스트를 사용하여 현재 좌표축에서 하나 이상의 데이터 점에 텍스트 설명을 추가
  • 텍스트 서식 옵션 설정으로 커스터마이징 가능
  • 텍스트 input으로 변수값, 변수명 표현 가능 (string 형으로 변환 필수)
  • latex 서식 사용 가능
  • x, y 값으로 상수가 아닌 수식이나 파라미터 입력이 가능하여 그래프 생성 자동화에 유용함
  • 업무 사용 예시 :
txt = ['mean : ' num2str(round(mean(data),2)) newline  ...
'sd : ' num2str(round(std(data),2))];
text(x1, y1, txt, 'FontSize', 10)

patch

  • 다각형의 패치를 생성하는 함수
  • 기본 형태 : patch(X,Y,C)
  • plot과 다르게 line 형태가 아닌 덩어리진 형태를 시각화함
  • 면, 꼭짓점, 선의 색, 투명도, 모양 등 옵션 설정 가능
  • patch 공식 문서
  • output 예시

xline / yine

  • 상수 값을 갖는 세로선 / 가로선을 생성하는 함수
  • 기본 형태 : xline(x) / yline(y)
  • plot과 마찬가지로 선에 대한 옵션 설정 가능
  • line에 대한 레이블 설정, 레이블 위치 조정 가능
  • xline 공식 문서 / yline 공식 문서
  • output 예시

errorbar

  • 오차 막대가 표시된 line plot 생성 함수
  • 기본 형태 : errorbar(y,err)
  • errorbar(x,y,yneg,ypos,xneg,xpos) : 평균 ± 1 표준편차를 표현할 때 유용함
  • errorbar 공식 문서
  • output 예시

grid

  • 그래프에 그리드를 추가해주는 함수
  • 기본 형태 : grid on
  • grid minor : 보조 그리드 추가
  • 업무에서 많이 사용하는 형태 : grid on; grid minor;
  • grid 공식 문서
  • output 예시

mdl = fitlm() -> plot(mdl)

  • 선형 회귀 모형을 피팅하고 데이터 산점도, 피팅된 회귀 적합선과 신뢰 구간을 생성하는 함수
  • 기본 형태
mdl = fitlm(tbl,'Y ~ X1 + X2');  %fitlm([x1, x2], y) 형태도 가능  
plot(mdl)
  • 함수에서 자동으로 회귀식에 절편을 포함하므로 절편 추정을 위해 데이터 핸들링을 하지 않아도 됨
  • NaN 값을 제외하므로 결측치를 크게 신경쓰지 않을 수 있음
  • h = plot(mdl); : 회귀모형 적합 결과 plotting을 객체화하면 데이터 포인트, 적합한 회귀선, 신뢰구간에 대한 옵션 커스터마이징 가능
  • plotting 시에는 절편을 포함하지 않음
  • fitlm 공식 문서 /선형회귀적합 plot 공식 문서
  • output 예시

5. figure 함수

그래프를 생성하는 plot 형태를 생성하는 함수
figure 창과 플롯 좌표축을 지정하는 함수
*MATLAB은 타 분석 프로그램과 다르게 figure라는 창을 생성하여 그래프를 보여주고, figure 창에서 GUI로 그래프 속성 조정이 가능하다.

figure

  • 새 Figure 창을 생성하는 함수
  • 기본 형태 : figure
  • Figure 창의 크기, 위치, 축 설정 가능
  • 업무에서 많이 사용하는 코드 : figure(); set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0, 1, 1]);
  • figure 공식 문서

subplot

  • 타일 형식으로 Figure 창을 나누어 좌표축을 생성하는 함수
  • 기본 형태 : subplot(m, n, p)
  • 현재 Figure를 m×n 그리드로 나누고, p로 지정된 위치에 좌표축 생성
  • 반복문 인덱스 등 여러 방법으로 커스터마이징 가능 → matrix plot 처럼 한 창에 여러 그래프 생성 가능
  • subplot 공식 문서
  • output 예시

tiledlayout

  • 타일 형식 차트 레이아웃 생성 함수. subplot과 유사
  • 기본 형태 : tiledlayout(m,n); nexttile
  • subplot 에 비해 타일 간격, 위치, 크기, 차트 추가와 설정이 자유로운 것이 특징
  • ui 객체도 타일의 input으로 가져오기 가능
  • tiledlayout 공식 문서
  • output 예시

gcf / gca

  • 현재 Figure 창과 좌표축을 객체로 리턴하는 명령어
  • 기본 형태 : fig = gcf; / ax = gca;
  • 객체화를 통해 현재 Figure 속성에 대한 설정과 현재 좌표축 속성에 대한 설정 가능
  • 코드뿐 아니라 변수창에서 객체로 리턴한 Figure Axes 변수를 클릭하여 GUI로 속성 설정 변경이 가능
  • gcf 공식 문서
  • gca 공식 문서

참고 링크

MATLAB 플롯 유형 - MATHWORKS

profile
한 걸음씩 쌓아가는 데이터 분석

0개의 댓글