[R 시각화] 고수준 그래픽과 저수준 그래픽

수진·2020년 2월 14일
1

R

목록 보기
5/12
post-thumbnail

  재미있게도 저는 R에서 기본 그래픽 함수보다 ggplot2를 활용한 시각화를 먼저 배웠는데요, 요즘은 두 함수 모두 공부하다보니 각각의 강점이 있다는 생각이 듭니다. 😊
  오늘은 기본 그래픽 함수의 1) 고수준 그래픽과 저수준 그래픽이 무엇인지 2) 그래픽 인자를 소개한 블로그 소개 3)직접 그려본 예시를 정리해보았습니다. 😎

🍎 고수준 그래픽과 저수준 그래픽

    1) 고수준 그래픽
    plot()과 같이 그래픽 창을 새롭게 열어 그래프를 그릴 수 있게 해주는 함수
    아래 그림처럼 그래프의 필수요소를 설정하는 것

    2) 저수준 그래픽
    열려있는 그래픽 창에 점, 화살표, 선과 같이 부수적인 요소를 추가
    필수요소는 아니지만 그래프의 퀄리티를 향상시켜주는 역할
    아래 그림에서 Length의 최솟값 이라는 텍스트와 화살표가 저수준 그래픽에 해당

🍎 함수 인자를 잘 정리한 블로그

    이러한 고수준 및 저수준 그래픽을 활용한 함수의 인자는 이미 많은 블로그에 설명되어 있어 링크하였습니다.

🍎 직접 그려보기

    iris🌼 예제 데이터를 활용하였습니다.

  • 고수준 그래픽 함수의 기본 버전
    고수준 그래픽 함수는 plot(), hist(), boxplot(), pairs() 등이 있습니다. 어떠한 인자도 추가하지 않고 데이터만 선택하여 그림을 그려 보았습니다.
attach(iris)
# attach 함수는 R 메모리 내 데이터를 가장 위로 올려주는 역할을 합니다.
# 이렇게 되면 iris라는 데이터를 지정하지 않아고 변수명 만으로도 불러올 수 있습니다.
plot(x = Sepal.Length) # x와 y의 산점도
hist(x = Sepal.Length) # x의 히스토그램
boxplot(x = Sepal.Length) # x의 박스플랏
pairs(formula = Petal.Length ~ Sepal.Length + Sepal.Width + Petal.Width) # y와 여러 x간의 산점도


  • 고수준 그래프에서 인자 활용 버전
    plot()에서 여러 인자를 활용한 예시를 만들어 보았습니다.
plot(x    = Sepal.Length, # x값 지정
      y    = Sepal.Width, # y값 지정
      type = "p", # plot의 타입 지정 : p는 points
      pch  = 21, # 점의 타입 지정 : 21은 빈 동그라미 형태
      bg   = "lightpink", # 점 배경 의 색상 지정
      col  = "black", # 점 선의 색상 지정
      bty  = "n", # 테두리 박스 형태 : n은 박스 형태 없음
      main = "아이리스 꽃받침 길이 별 넓이", # 타이틀
      xlab = "꽃받침 길이", # x축의 이름
      ylab = "꽃받침 넓이", # y축의 이름
      col.main = "black", # 타이틀 색상
      col.lab  = "dimgray", # x, y축 색상
      col.axis = "dimgray", # 축 라벨 색상
      las = 1) # 축 방향 : 1은 수평

  • 저수준 그래프 인자 추가 버전
    위 그래프에서 저수준 그래픽을 추가한 버전입니다. 예시이기 때문에 별로 의미 없는 인자도 추가했어요.
    그리고 각 인자들을 외우기엔 너무 많으니 R studio의 help를 보고 적으면 됩니다.
arrows(x0 = 4.5, # 화살표 추가, x 시작점
       y0 = 4.0, # y 시작점
       x1 = 4.5, # x 끝점
       y1 = 2.3, # y 끝점
       length = 0.3, # 화살표의 길이(선 말고)
       lty = 1, # 화살표 전체 선 모양
       col = "dimgray") # 화살표 
       
text(x = 4.5, # 텍스트 추가, x 시작점
     y = 4.2, # y 시작점
     labels = "최솟값") # 텍스트
     
legend(x = 7.3, # 범례 추가, x 시작점
       y = 4.5, # y 시작점
       legend = "point", # 범례 이름
       pch = 21, # 범례 도형 형태
       pt.bg = "lightpink", # 범례 도형 배경 색 
       col = "black", # 범례 박스 선 색
       box.lty = 3) # 범례 박스 선 모양
       
rect(xleft   = 5.5, # 도형 그리기, 사각형 x 시작점
     xright  = 6.5, # 사각형 x 끝점
     ytop    = 3.3, # 사각형 y 시작점
     ybottom = 2.3, # 사각형 x 시작점
     border  = "blue", # 사각형 선 색
     lwd     = 1.5) # 사각형 선 넓이

  이상으로 R 그래픽 생성의 기초적인 부분을 포스팅 해보았습니다. 🤹‍ 이 것들을 for문과 if함수를 활용해서 특정 기준에 따라 선 모양이나 색상 같은 것들을 다르게 적용하면 더 좋겠지요? 🤓

profile
안녕하세요! 이것저것 하고 있습니다 👩‍🔧

0개의 댓글