R로 데이터 분석하기 - 시각화 (3) : ggplot2

1 minute read

1. ggplot2 설치하기

해들리 위컴이 개발한 ggplot2는 편리하게 시각화를 할 수 있는 R의 시각화 패키지이다. 처음 사용하는 경우 ggplot2를 설치해 주어야 한다. 설치는 한 번만 하면 되지만, 매번 사용할 때마다 library로 불러와 주는 작업은 해야 한다.

install.packages("ggplot2") # 한 번만
library(ggplot2)

설치할 때는 패키지 이름에 큰따옴표가 붙지만, library로 불러올 때는 큰따옴표가 붙지 않는다는 점에 유의하자.

2. ggplot2 사용하기

ggplot2에서 그래프를 그리는 방법은 기본적으로 ggplot() 함수를 사용해 사용할 데이터와 변수를 지정해 준 후, +로 그리고 싶은 그래프의 형태와 그 외의 각종 요소들을 추가해주는 것이다. ggplot2로 지난 글에서 그렸던 그래프와 비슷하게 그려보자.

ggplot(weather, aes(Temp_mean, Humidity))+
  geom_point()+
  labs(x = "Temperature", y = "Humidity",
       title = "Scatter plot with ggplot2")

image

지난 번보다 좀 더 깔끔하게 그려졌다. 점의 크기와 색깔을 이용해 더 많은 정보를 나타내보자.

ggplot(weather, aes(Temp_mean, Humidity))+
  geom_point(aes(color=factor(Rain2),
                 size=Dust))+
  labs(x = "Temperature", y = "Humidity",
       title = "Scatter plot with ggplot2")

image

위의 코드에서처럼 color를 이용하면 색을 지정할 수 있고 size로는 크기를 지정할 수 있다. 이 외에도 shape으로 모양을 지정하거나 alpha로 투명도를 지정하는 것도 가능하다.

이번에는 위 그래프를 year 변수에 따라 2개의 subplot으로 나누어보자.

ggplot(weather, aes(Temp_mean, Humidity))+
  geom_point(aes(color=factor(Rain2),
                 size=Dust))+
  labs(x = "Temperature", y = "Humidity",
       title = "Scatter plot with ggplot2")+
  facet_grid(cols=vars(year))

image

연도별로 데이터 건수가 어떻게 되는지를 막대그래프로 나타내보자. 따라서 이번에는 geom_point() 대신 geom_bar()를 사용할 것이다.

ggplot(weather, aes(year))+
  geom_bar(width=.5)+
  labs(x = "Year", y = "Count",
       title = "Bar plot with ggplot2")+
  coord_flip()

image

width로는 막대의 너비를 지정할 수 있고, 마지막에 coord_flip()을 해주면 가로 세로가 반전된 그래프를 그릴 수 있다.

ggplot2는 산점도와 막대그래프 외에도 라인 그래프, 히스토그램, 상자그림 등 다양한 형태의 그래프를 제공한다. 추가적인 ggplot2 활용법은 다음에서 참고하자. 자료는 https://rstudio.com/resources/cheatsheets/에서 가져온 것이다.

image

image

Leave a comment