그래프 유형(type)
type은 plot( )으로 데이터를 그래프로 그릴 때 그래프 유형을 지정하는 옵션이다.
그래프 유형 지정 |
의미 |
plot(X, Y, type) |
•X, Y를 그리되 그래프의 유형을 type으로 지정한다. •type 중 자주 사용하는 값으로는 p(점), l(선), b(점과 선 모두), o(점과 선을 중첩하여 그림), n(아무것도 그리지 않음)이 있다. •b와 o는 점과 선을 모두 사용한다는 점에서 유사해 보이지만, b는 점과 선이 만나는 점에서는 점 또는 선 중 하나만 보인다. 반면 o는 점 그래프를 그리고 그 위에 선 그래프를 중첩하여 그린다. •n은 데이터를 그리지는 않지만 새로운 그래프를 초기화하는 역할을 한다. n을 사용할 경우 데이터는 이 장의 뒤에서 배울 lines( ), points( ) 등으로 그린다. |
그래프 유형을 지정하는 예를 살펴보기에 앞서 cars 데이터 셋에 관해 알아보자. cars 데이터는 1920년대에 조사된 데이터로, 차량이 달리는 속도와 그 속도에서 브레이크를 잡았을 때 제동 거리를 측정한 데이터다.
> data(cars) > str(cars) 'data.frame': 50 obs. of 2 variables: $ speed: num 4 4 7 7 8 9 10 10 10 11 ... $ dist : num 2 10 4 22 16 10 18 26 34 17 ... > head(cars) speed dist 1 4 2 2 4 10 3 7 4 4 7 22 5 8 16 6 9 10
다음은 cars를 plot( )한 예다.
> plot(cars)
속도와 제동 거리는 선형 상관관계가 있으리라는 것을 쉽게 짐작할 수 있다. 그렇다면 점으로 데이터를 표시하는 것보다는 꺾은선으로 표시하는 것이 낫지 않을까? type=“l”을 지정하여 꺾은선 그래프를 그릴 수 있다.
> plot(cars, type="l")
관찰된 점들과 선을 모두 그리려면 type=“b”를, 중첩하여overlapped 그리려면 type=“o”를 지정한다. 이 둘은 점과 선을 모두 사용한다는 점은 비슷하지만, b는 점과 선이 중첩되지 않으며 o는 점 그래프를 그린 뒤 그 위에 꺾은선 그래프를 중첩하여 그리는 차이가 있다. 다음은 이 두 가지 경우의 예를 보여준다.
> plot(cars, type="b") > plot(cars, type="o")
그림 6-10을 보면 같은 주행 속도에 대해 두 개 이상의 제동 거리가 있는 경우가 많아 속도에 따른 제동 거리의 추세가 잘 드러나지 않는다. 이 문제를 해결하기 위해 tapply( )를 사용해보자. 각 speed마다 평균 dist를 tapply를 사용해 계산한 다음 이를 plot( )하면 된다.
> tapply(cars$dist, cars$speed, mean) 4 7 8 9 10 11 12 6.00000 13.00000 16.00000 10.00000 26.00000 22.50000 21.50000 13 14 15 16 17 18 19 35.00000 50.50000 33.33333 36.00000 40.66667 64.50000 50.00000 20 22 23 24 25 50.40000 66.00000 54.00000 93.75000 85.00000 > plot(tapply(cars$dist, cars$speed, mean), type="o", cex=0.5, xlab="speed", ylab="dist")