[R] 그래프 그리기(plot함수)

반응형
    반응형

    R에서의 plot 함수 사용법입니다.
    plot 함수를 이용해 산점도와 꺽은 선 그래프를 그릴 수 있습니다.

    기본 문법은 다음과 같습니다.

    plot(y축 데이터,kwag**)   
    plot(x축 데이터,y축 데이터,kwag**)

    위 방식은 데카르트 방식이라고 부릅니다. x,y 데이터를
    (x,y)좌표로써 인지하고 그에 맞게 점을 찍는 방식입니다.
    x,y 매칭은 값 순서대로 합니다.
    plot에 넣은 데이터가 하나(x or y)라면 자연스럽게 y축 데이터를 기준으로 넘어가고 x축에는 인덱스로 설정됩니다.

    # x만 plot에 넣은 경우
    x = c(1,2,3)
    plot(x)

     

    # x,y을 plot에 넣은 경우
    x = c(1,2,3)
    y = c(4,5,6)
    plot(x,y)

     

    축 관련 옵션

    plot()함수 내에서 제목이나 축 옵션을 변경할 수 있습니다.

    파라미터 설명
    main 그래프 제목 설정
    sub 서브 제목
    xlab='문자',ylab='문자' x,y축에 제목 설정(하나의 데이터만 입력시 ylab으로 설정)
    ann=F x,y 축 제목을 없앰
    axes=F 축제거
    xlim,ylim 각 축의 범위 변경

    몇가지를 살펴보겠습니다.
    먼저 x만 입력시 xlab을 했을 때 x축에 있는 Index가 A로 바뀌는 것을 볼 수 있습니다.

    plot(x,xlab='A',main='Test')

    그렇기 때문에 하나의 데이터만 넣을시에는 ylab으로 바꿔주어야 합니다.

    plot(x,ylab='A',main='Test')

     

    ann=F을 넣으면 x,y 축 이름이 없어집니다.

    plot(x,ann=F)

    축 자체를 없애려면 axes=F를 합니다.
    점만 나오게 하는 방법이나 잘 쓰이진 않습니다.

    plot(x,ann=F,axes=F)

     

    그래프 타입 지정

    그래프 타입이라고 해봤자 점과 선을 벗어나진 않습니다.
    둘의 조합으로 다양한 시각화를 할 수 있습니다.

    파라미터 설명
    type='p' 산점도(디폴트)
    type = 'l' 꺾은선 그래프
    type='b' 점과 선 모양 그래프(중첩x)
    type='c' type='b'에서 점을 뺀 그래프
    type='o' 점과 선 모양 그래프(중첩o)
    type='h' 수직선 그래프
    type='s' 누적함수(왼쪽 기준)
    type='S' 누적함수(오른쪽 기준)
    type='n' 축만 그리기

    몇가지만 살펴보겠습니다.

    plot(x,y,type='b')

     

    plot(x,y,type='h')

     

    plot(x,y,xlim=c(1,4),type='S')

     

    plot(x,y,type='n')

     

    꾸미기 옵션(점,선,색,모양)

    선모양

    먼저 선모양을 보면 다음과 같습니다. lty=0~6까지로 총 7개의 선모양이 있습니다. 0번은 투명선이라서 사실상 6가지 선모양입니다.

    파라미터 설명
    lty=0 , lty='blank' 투명선(선없음)
    lty=1 , lty='solid' 실선
    lty=2 , lty='dashed' 대쉬선
    lty=3 , lty='dotted' 점선
    lty=4 , lty='dotdash' 점선과 대쉬선
    lty=5 , lty='longdash' 긴 대쉬선
    lty=6, lty='twodash' 두개의 대쉬선

    그래프 타입이 선이 있게 설정하고서 lty를 입력해야 적용이 됩니다.
    점만 있는 그래프인 경우 반영되지 않습니다.

    plot(x,type='l',lty=2)

     

    색,굵기, 모양

    색상은 col 로 통일되어서 적용됩니다.
    점의 색이나 선의 색이나 col 명령이면 다 가능합니다.

    파라미터 설명
    col=1, col='색상' 번호별 색, 1-검정, 2-빨강,3-초록,4-파랑,5-연파랑(ligthblue),6-보라,7-노랑,8-회색
    lwd=1 선의 굵기 지정
    cex= 1 점,기호의 굵기 지정
    pch=0,pch='모양' 점의 모양을 지정, 0-네모, 1-동그라미,2-세모,3- +,4-X,5-다이아모드, 6 - 아래로 뒤집어진 세모, 7-네모안에 X, 8-별, 9-다이아몬드 안에 X, 10-동그라미 안에 X, 11-다윗별, 12- 네모안에 +, ...15 - 색칠된 네모,...,20- 네모,...,25 - 아래로 뒤집어진 세모. 끝

    점모양은 종류가 많아보이지만 사실상 0~8까지의 기본 모양과 9~4까지의 기본모양을 조합한 모양, 15~19 색칠된 기본모양(색칠이 가능한 경우만), 20~25는 다시 기본모양이 나옵니다.
    물론 직접 모양을 써서 점모양을 표현할 수 있긴 합니다.
    그런데 9번이후에 있는 조합된 모양은 무슨 모양으로 써야할지 굉장히 난감하기 때문에 잘 쓰는 모양의 번호를 기억해두었다가 사용하는게 좋을 것 같습니다.

    plot(x,type='l',col='lightblue',lwd=9)

    plot(x,pch=12,cex=2)

    마치며

    plot을 이용한 산포도와 꺾은선 그래프를 그리는 방법에 대해 다루어보았습니다. 너무 간단한 벡터를 표현해서 감흥이 약간 없긴 하지만 명령에 대한 거의 모든 것을 다 담았기 때문에 유용하게 쓰지 않을까 싶습니다.
    plot으로 하면 멋있는 그래프가 나오진 않습니다. 그냥 간단하고 빠르게 시각화 하는데에 의의를 두는게 좋아보입니다.

    댓글

    Designed by JB FACTORY

    ....