티스토리 뷰

반응형

오늘은 파이차트(원모양의 그래프, 원그래프) 혹은 가운데가 비어있는 도넛차트를 만들어보려 한다. 기본 데이터셋인 mtcars 를 활용해서 우선 bar 차트를 만들어야 한다. 여기서 중요한건, factor 로 x축을 만들면 안되고, 숫자형으로 정의 되어야 한다. 만들고나면 화면에 꽉찬 막대그래프가 그려진다.

library(tidyverse)

ggplot(mtcars, aes(x = 1, fill = factor(cyl))) +
  geom_bar()

 

원형그래프(Pie chart)

아까 만든 막대그래프를 원형으로 돌돌 말아본다고 생각하면 쉽다. coord_polar 로 무슨 축을 기준으로 원형으로 표현할지 정한다. 손쉽게 파이차트(원그래프)가 만들어진다. 

ggplot(mtcars, aes(x = 1, fill = factor(cyl))) +
  geom_bar() +
  coord_polar(theta = "y")

반응형

도넛 그래프

사실 요새 보면 꽉차있는 원그래프 보다는 가운데가 비어있는 도넛그래프가 더 많이 보이는 듯 하다. 가운데를 비우기 위해서는 xlim 을 이용해서 x 축을 일부려 늘이면, 전체 그림에서 bar 차트가 차지하는 영역이 적어진다. 그걸 이용하게 되면 도넛모양이 생기게 된다.

ggplot(mtcars, aes(x = 1, fill = factor(cyl))) +
  geom_bar() +
  coord_polar(theta = "y") +
  xlim(c(-3, 1.5))

 

이제 마지막으로 불필요한 축과 정보를 지우고, 범례(legend)를 하단에 배치하는 등 스타일을 정리한다. 

ggplot(mtcars, aes(x = 1, fill = factor(cyl))) +
  geom_bar() +
  coord_polar(theta = "y") +
  xlim(c(-3, 1.5)) +
  theme_minimal(base_family = "Apple SD Gothic Neo") + 
  labs(fill = "Number of cylinders", title = "Motor Trend Car Road Tests") +
  theme(axis.text.y = element_blank(),
        axis.text.x = element_text(size = 12),
        legend.text = element_text(size = 10),
        legend.title = element_text(size = 10), 
        legend.position = "bottom",
        legend.margin = margin(-.7,0,0.2,7, unit = "cm"),
        plot.title = element_text(size = 15, hjust = 0.5,
                                  margin = margin(0.3, 0, 0.3, 0, unit = "cm")),
        axis.title.x = element_blank(),
        axis.title.y = element_blank()) +
  scale_fill_brewer(palette = "PuRd")

완성이다. 타이틀을 넣고 위치조정하였고, 색상이나, 불필요한 선도 없애면 더 깔끔한 도넛차트가 나올 듯 하다. 담에는 백분율 정보를 텍스트로 추가해서 가독성있게 정리를 다시 해볼 예정이다. 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함