R은 데이터 시각화에 강력한 라이브러리들을 여럿 가지고 있어서 매우 유용하다.
이번 포스트에서 사용할 라이브러리는 아래와 같다.
library : gglpot2
plotrix
boot
scatterplot3d
lattice
MASS
먼저, 내장 데이터셋인 faithful 을 기본 함수 plot()
을 통해 그려보자.
1 | head(faithful) |
fa는 waiting 열을 order()
을 통해 정렬한 faithful 데이터를 기록한 것이다.
즉, fa[,1] = fa$eruptions 이고, fa[,2] = fa$waiting 이다.
plot()
은 type을 지정할 수 있으며, 여기서는 line을 나타내었다.
point()
는 말 그대로 점을 찍는 함수이며, 여기서 점의 생김새를 결정하는 pch= 를 한번 보자.
여러가지 타입이 있다는 것만 알면 된다. 중요한 것은 pch= 가 점의 타입을 결정하는 요소이며 자주 쓰이는 것이 pch = 20(점), 21, 22, 23, 24, 25 라는 사실이다.
이번에는 동일한 데이터를 ggplot2
패키지를 통해서 그려 보자.
1 | library(ggplot2) |
역시 ggplot2
답게 그래프 디자인이 조금 더 깔끔해 보인다.
ggplot()
함수는 어떤 데이터로 어느 축에 할당할 것인지 정한다. 이 함수만 출력하면 아무것도 plot되지 않음에 주의하자. 실제로 점을 찍고 선을 긋는 함수는 뒤에 있다.
자주 쓰이는 형태는 ggplot(data, aes(x = , y = , fill = ))
으로, fill값에 대해서는 뒤에 다시 설명하겠다.
geom_point()
는 말그대로 점을 찍는 함수이다. 여기에도 여러가지 디자인 요소들이 있지만 자주 쓰이는 것은 col= 으로, 점의 색상을 결정한다.
이외에도 점의 모양을 결정하는 shape=, 점의 색상을 요소(factor)에 따라 변화하게 하는 aes(fill=), 점의 크기를 결정하는 size= 등이 쓰이는데 자세한 것은 여기를 참고하자.
geom_line()
은 선을 긋는 함수이다. 마찬가지로 col=4라고 적음으로써 4번 색상인 파랑을 출력하고 있다. 자세한 디자인 요소 변경은 여기를 참고하자.
이번에는 또 다른 내장 데이터인 diamonds 를 ggplot2
로 그려 보자.
1 | head(diamonds) |
ggplot()
에서 x축 데이터를 carat열, 그리고 y축 데이터를 price열 로 설정하였다.
그리고 geom_point()
로 점을 찍는데, 그 점들의 색상을 color열의 요소에 따라 달라지도록 지정하였다.
마지막으로, 새로운 함수가 하나 나타났는데 바로 facet_grid()
.
주로 집단(group) 간의 효과적인 비교를 위해 면을 분할하고 싶을 때 사용한다.
또한, 많은 경우 x ~ y
와 같은 형태로 작성하는데, 이는 표현 그대로 좌측은 x (input), 우측은 y (output)을 의미하는 간략한 함수 형태이다.
위의 facet_grid(color ~ .)
은 color에 따라 나머지 모든 데이터를 그룹화 하여 면을 분할 해서 표현하라는 의미로 해석된다. 참고는 여기
만약 facet_grid(. ~ color)
로 쓴다면, 쉽게 말해서 x와 y가 반전되어 출력된다. (세로)
왼쪽은 facet_grid(color ~ .) 이고, 오른쪽은 facet_grid(. ~ color) 의 결과물이다. 위의 geom_point()
세팅에 따라, 점의 색상이 diamonds$color의 값에 따라 달라짐을 알 수 있다.
이어지는 포스트에서는 기본 plot외의 bar, histogram 등의 형태를 다루어 볼 것이다.
본 포스트는 KAIST 전산학부 대학원 과정에서 수강하고 있는 Big Data Analytics using R (CS564)을 실습하며 작성하였음을 밝힙니다.