유명한 시각화 라이브러리 ggplot2를 이용하여 시각화를 진행해보겠습니다.


시각화 연습

#ggplot2 불러오기
library(ggplot2)

#mpg데이터를 이용한 시각화
ggplot(data=mpg, aes(x=displ, y=hwy, color = drv))+
#산점도 추가
  geom_point(size = 5)+
#x축, y축 범위 지정
  xlim(3,6)+
  ylim(10,30)

dplyr에서 각각 옵션들을 각각 옵션을 %>%로 잇듯이 여기서는 +로 잇습니다. x축에는 displ, y에는 hwy로 지정 후 drv에 따라 색깔이 달라지는 산점도 시각화를 진행하였습니다. 산점도를 추가하는 geom_point에서 size 옵션에서 점의 크기를 지정할 수 있습니다.

https://blog.kakaocdn.net/dn/326yE/btqMeGoVQCX/kzBaj43PA3XKoZQWCK33nK/img.png

위 스크립트를 이용한 시각화 이미지입니다. 연습을 위한 스크립트이기 때문에 큰 의미는 없습니다.


막대 그래프

library(dplyr)
df.mpg = mpg %>% 
  group_by(drv) %>% 
  summarise(mean_hwy=mean(hwy))

ggplot(data=df.mpg, aes(x=drv, y=mean_hwy))+
  geom_col()

ggplot(data=df.mpg, aes(x=reorder(drv, -mean_hwy), y=mean_hwy))+
  geom_col()

이번에는 mpg 데이터를 이용하여 구동방식별 고속도로 연비를 시각화하였습니다. 연비의 내림차순으로 x축을 전달하기 위해 reorder를 사용했습니다.


빈도 막대 그래프

mpg 데이터에서 구동방식(drv)의 빈도 막대그래프를 그리는 스크립트입니다.

ggplot(data = mpg, aes(x=drv)) + 
  geom_bar(
    mapping = aes(
      x=drv, fill=drv
    )
  )+
  theme(legend.position = "bottom")+
  scale_fill_manual(
    values = c("red", "green", "blue"),
    name = "구동방식",
    labels = c("4륜","전륜","후륜")
  )+
  labs(
    x="drv(구동)",
    y="count(빈도)",
    title="구동별 빈도 수 분석",
    subtitle = "막대그래프",
    caption = "출처 : 제작팀"
  )+
  geom_text(
    stat = "count",
    aes(label=..count..),
    position = position_dodge(width=1.8),
    vjust=-0.5
  )+
  ylim(c(0,120))

각 방식에 따라 색을 변경하였고 범례는 하단에 배치하였습니다. 범례 제목은 구동방식, 색깔은 빨강, 초록, 파랑으로 설정했습니다. x축 제목은 drv(구동), y축 제목은 count(빈도)이며 제목과 부제, 그리고 출처 표기는 스크립트에서 확인할 수 있습니다. 그 다음에는 각 구동방식별 갯수를 막대 위에 표시하였습니다.

https://blog.kakaocdn.net/dn/dyudjq/btqMknuR6ek/rwrEJfSb0n3Psb72Mg9Ax1/img.png


제조사별 연비

mpg 데이터에서 차종이 suv인 자동차의 제조사별 평균 연비를 시각화하는 스크립트입니다. 가장 연비가 높은 5개의 회사만 뽑아서 진행하였습니다.

ggplot(data=mpg %>% filter(class=='suv') %>%
         group_by(manufacturer) %>%
         summarise(mean_cty = mean(cty)) %>% 
         arrange(desc(mean_cty)) %>% 
         head(5),
       aes(x=reorder(manufacturer, -mean_cty),
           y=mean_cty,
           fill =reorder(manufacturer, -mean_cty)))+
  geom_col(mapping = aes(x=reorder(manufacturer, -mean_cty)))+
  geom_text(
    aes(label = round(mean_cty,2)),
    vjust = 2.2, colour= 'white'
  )+
  labs(
    x="회사명",
    y="도시연비",
    title="회사별 도시연비"
  )+
  theme(plot.title = element_text(
    family = "serif",
    face = "bold",
    hjust = 0.5, size = 15, color = "darkblue"))+
  guides(fill = 'none')

mpg 데이터에서 상위 5개의 데이터만 출력 후 제조사와 평균 연비를 각각 x축, y축에 배치했습니다. 평균 연비를 소숫점 반올림 하였으며 글씨 색상은 흰색으로 설정했습니다. 다음은 x축, y축 및 제목을 입력하였고 제목의 서식을 변경하였습니다.

https://blog.kakaocdn.net/dn/L2sjs/btqMeFcytqC/0NV9ktiN9z20cXtzsK5ga1/img.png