5.2 고수준 그래프 함수

5.2.1 plot() 함수

  • R의 가장 대표적인 2차원 고수준 그래프 출력 함수
  • plot()의 가장 일반적인 용도는 그래프 장치를 설정(축, 값의 범위 등) 후 저수준 그래프 함수(축, 선, 점, 면 등)를 그래프 장치에 적용
  • 데이터가 저장되어 있는 객체(벡터, 행렬, 데이터 프레임 등) 하나 이상을 함수의 인수(argument)로 사용
  • 데이터의 클래스에 따라 출력되는 그래프 결과가 다름 \(\rightarrow\) methods(plot)을 통해 plot() 함수가 적용되는 클래스 확인 가능
 [1] plot,ANY-method        plot,color-method      plot.acf*             
 [4] plot.ACF*              plot.augPred*          plot.compareFits*     
 [7] plot.data.frame*       plot.decomposed.ts*    plot.default          
[10] plot.dendrogram*       plot.density*          plot.ecdf             
[13] plot.factor*           plot.formula*          plot.function         
[16] plot.ggplot*           plot.gls*              plot.gtable*          
[19] plot.hcl_palettes*     plot.hclust*           plot.histogram*       
[22] plot.HoltWinters*      plot.intervals.lmList* plot.isoreg*          
[25] plot.lm*               plot.lme*              plot.lmList*          
[28] plot.medpolish*        plot.mlm*              plot.nffGroupedData*  
[31] plot.nfnGroupedData*   plot.nls*              plot.nmGroupedData*   
[34] plot.pdMat*            plot.ppr*              plot.prcomp*          
[37] plot.princomp*         plot.profile.nls*      plot.R6*              
[40] plot.ranef.lme*        plot.ranef.lmList*     plot.raster*          
[43] plot.shingle*          plot.simulate.lme*     plot.spec*            
[46] plot.stepfun           plot.stl*              plot.table*           
[49] plot.trans*            plot.trellis*          plot.ts               
[52] plot.tskernel*         plot.TukeyHSD*         plot.Variogram*       
see '?methods' for accessing help and source code
[1] "data.frame"

[1] "lm"
null device 
          1 

[1] "table"

  • 객체의 클래스가 벡터나 행렬인 경우, 객체에 저장된 데이터를 2차원 평면(x-y 좌표)에 출력

  • plot() 함수의 세부 옵션
  • type 인수: 그래프 타입 지정
[1] 1 2 3 4 5 7
[1]  8.3 10.3 19.0 16.0 15.6 19.8

  • xlim, ylim 인수: x, y 축의 범위 지정

  • xlab, ylab 인수: x축과 y축 이름 지정
null device 
          1 

  • lty 인수: 선의 형태 지정
lty 파라미터 값에 따른 선 형태

Figure 5.2: lty 파라미터 값에 따른 선 형태

  • pch 인수: 점(point)의 모양을 지정
R graphics 점 표현 기호 및 대응 번호

Figure 5.3: R graphics 점 표현 기호 및 대응 번호

  • cex 인수: 텍스트 및 점의 크기 지정
    • cex.axis: 각 축의 눈금 레이블 크기 조정
    • cex.lab: x-y 축의 이름 크기 조정
    • cex.main: 그림 제목 크기 조정
    • cex.sub: 부제목 크기 조정
  • 텍스트 cex 인수 적용 예시

  • lwd 인수: 선의 두께 지정
    • cex 크기와 lwd 두께

  • col 인수: 그래프의 점, 면, 선의 색상
  • palette() 함수를 통해 그래픽 기본 색상 확인(총 8개)

  • colors()를 통해 R에서 기본으로 제공하는 색상 확인 가능(총 657개)
  • 내장 색상 팔레트: n 개의 색상을 반환하고, 색상의 투명도는 alpha 인수를 통해 조정
    • rainbow(n): Red \(\rightarrow\) Violet
    • heat.colors(n): White \(\rightarrow\) Orange \(\rightarrow\) Red
    • terrain.colors(n): White \(\rightarrow\) Brown \(\rightarrow\) Green
    • topo.colors(n): White \(\rightarrow\) Brown \(\rightarrow\) Green \(\rightarrow\) Blue
    • grey(n): White \(\rightarrow\) Black
  • R Color Chart 참고

5.2.2 주요 고수준 그래픽 함수

5.2.3 산점도

5.2.3.1 car::scatterplot()

  • plot(x, y)를 통해 2차원 산점도를 그릴 수 있으나, car 패키지에 내장되어 있는 해당 함수를 이용해 보다 많은 정보(상자그림, 회귀곡선 등)를 포함

  • plot() 함수의 인수 적용 가능

5.2.3.2 pairs()

  • pairs(): 산점도 행렬을 생성해주는 함수로, 객체의 클래스가 데이터 프레임인 경우 plot(dat)과 동일한 그래프를 반환

5.2.4 행렬 그래프

  • 행렬 객체를 plot() 함수의 입력으로 사용한 경우 1-2 번째 열 데이터로 산점도를 출력
             [,1]        [,2]       [,3]
[1,] 1.486720e-06 0.002215924 0.02156933
[2,] 1.562867e-06 0.002249385 0.02166383
[3,] 1.642751e-06 0.002283295 0.02175862
[4,] 1.726545e-06 0.002317658 0.02185368
[5,] 1.814431e-06 0.002352479 0.02194902
[6,] 1.906601e-06 0.002387763 0.02204463

matplot()

  • 객체의 클래스가 행렬(matrix) 형태로 이루어진 데이터에 대한 그래프 출력
    • 열 기준으로 그래프 출력
    • x 가 주어지지 않은 경우, 행렬의 색인을 x 축으로 사용

5.2.5 히스토그램

hist()

Rows: 153
Columns: 6
$ Ozone   <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, 18, 1...
$ Solar.R <int> 190, 118, 149, 313, NA, NA, 299, 99, 19, 194, NA, 256, 290,...
$ Wind    <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6, 6.9...
$ Temp    <int> 67, 72, 74, 62, 56, 66, 65, 59, 61, 69, 74, 69, 66, 68, 58,...
$ Month   <int> 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,...
$ Day     <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ...

  • hist() 함수의 반환값
$breaks
 [1]  55  60  65  70  75  80  85  90  95 100

$counts
[1]  8 10 15 19 33 34 20 12  2

$density
[1] 0.010457516 0.013071895 0.019607843 0.024836601 0.043137255 0.044444444
[7] 0.026143791 0.015686275 0.002614379

$mids
[1] 57.5 62.5 67.5 72.5 77.5 82.5 87.5 92.5 97.5

$xname
[1] "temp"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"
  • hist() 함수의 인수 사용(plot() 함수의 인수 거의 대부분 사용 가능)

  • labels 인수를 통해 빈도값 출력

  • breaks 인수를 통해 막대 구간 조정
null device 
          1 

5.2.6 막대 그래프

  • 히스토그램(hist())은 연속형 데이터의 구간 별 빈도 또는 밀도를 나타냄
  • 막대 도표(bar plot)는 해당 좌표의 값(value)를 나타냄

barplot()

  • help(barplot) 을 통해 함수 사용 방법 확인
  • 보통 요약통계량(예: 그룹별 빈도, 평군)의 시각화를 위해 많이 사용

  • 데이터 프레임을 대상으로 barplot() 실행 시 수식 표현 가능
  • 막대도표 + 표준오차

5.2.7 상자 그림

  • 다섯 개의 통계량(5 numbers summary: 최솟값, 1사분위수, 중앙값, 3사분위수, 최댓값)을 이용해 연속형 자료를 그래프로 표현한 도표

boxplot()

  • help(boxplot)을 통해 상세 함수 인수 내용 확인
  • 벡터, 행렬, 데이터 프레임, 리스트 객체에 적용 가능
  • 데이터 프레임의 경우 수식 표현 가능
    • y ~ x: 변수 x (보통은 factor 형)에 따른 y
    • y ~ x + y: 변수 xy의 조합에 따른 y
             [,1]        [,2]       [,3]
[1,] 1.486720e-06 0.002215924 0.02156933
[2,] 1.562867e-06 0.002249385 0.02166383
[3,] 1.642751e-06 0.002283295 0.02175862
[4,] 1.726545e-06 0.002317658 0.02185368
[5,] 1.814431e-06 0.002352479 0.02194902
[6,] 1.906601e-06 0.002387763 0.02204463

5.2.9 모자이크 도표

  • 다변량 범주형 자료의 분포(빈도, frequency)를 시각화 하기 위한 그래프
  • 전체 직사각형의 면적을 1이라고 할 때, 중첩되지 않는 각 셀의 빈도(행 기준)의 비율만큼 면적을 할당.
  • 로그선형모형(log-linear model)에 대한 적합도 검정(goodness of fit test) 결과 출력
로그선형모형(log-linear model)은 다차원 교차표의 셀 빈도를 예측하기 위한 모형임. 해당 모형에 대한 기술은 본 강의의 범위 벗어나기 때문에 설명을 생략함.

mosaicplot()

  • R graphics 패키지(기본 그래픽 패키지)에 내장되어 있는 함수
  • 기본적으로 table 객체(기본적으로 table()을 통해 생성된 객체)를 입력 데이터로 받음
  • 수식 표현을 통해 모자이크 데이터 프레임(또는 리스트), 객체로부터 도출한 테이블로 도표 생성 가능(테이블 객체에도 수식 표현 가능)
  • 예시: 버클리 주립대 대학원 합격자 데이터
    • Simpson’s paradox를 설명하는 대표적인 예시로 많이 활용되는 데이터
$Admit
[1] "Admitted" "Rejected"

$Gender
[1] "Male"   "Female"

$Dept
[1] "A" "B" "C" "D" "E" "F"
[1] TRUE

  • 각 학과 별 mosaic 도표(help(UCBAdmissions)의 예시 코드)