티스토리 뷰
반응형
막대그래프를 그릴때, 막대위에 숫자표기를 하고 싶다면, 쉽게 설정이 가능하다. 그리고 왼편의 ggplot 에서 흔히 보는 막대그래프 스타일을 오른편의 그래프로 디자인까지 진행해본다.
임의의 데이터 셋을 만든다. sample 을 이용해서 랜덤으로 값을 추출한다.
tb = tibble(x = 1:5,
y = sample(200:240, 5),
l = c("서울", "경기", "강원", "충청", "제주"))
아래 2줄만으로도 막대그래프를 손쉽게 만들 수 있다.
ggplot(tb, aes(x, y)) +
geom_col(width = 0.6)
반응형
막대그래프 위에 실제 y 값을 표시하려면, 추가적인 설정이 필요하다. geom_text 를 이용해서 텍스트를 추가하면 되고, vjust 설정으로 위아래로 위치를 살짝씩 조정해본다. 그리고 scale_y_continuous 내의 limits 를 설정해야 하는데, 최대막대그래프의 x 1.1배 혹은 1.2 배를 해야 텍스트가 일부 잘리지 않는다. (* 1.2 를 빼고 실행해보면 안다.)
ggplot(tb, aes(x, y)) +
geom_col(width = 0.6) +
geom_text(aes(x = x, y = y, label = y), vjust = -0.7, family = "BMDoHyeon-OTF") +
scale_y_continuous(expand = expansion(mult = 0), limits = c(0, tb$y * 1.2))
이제 스타일을 넣어본다. 색상도 넣고, 불필요한 요소들을 제외시켜 단순화 하고나면 아래와 같은 그래프를 얻을 수 있다. 폰트는 배달의 민족 폰트를 가져와 사용해봤다. 한글 폰트를 다양하게 사용해보니 더 그래프의 수치가 돋보이는 것처럼 보여 만족스럽다.
ggplot(tb, aes(x, y)) +
geom_col(width = 0.6, fill = "#fec44f") +
geom_text(aes(x = x, y = y, label = y), vjust = -0.7, family = "BMDoHyeon-OTF") +
scale_y_continuous(expand = expansion(mult = 0), limits = c(0, tb$y * 1.2)) +
scale_x_continuous(breaks = tb$x, labels = tb$l) +
theme_void(base_family = "BMDoHyeon-OTF") +
theme(
axis.line.x = element_line(size = 1.2),
axis.text.x = element_text(margin = margin(.3,0,0,0, "cm"), size = 13),
plot.margin = margin(.3,1,.7,1, "cm"),
legend.position = "none")
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ipTIME
- 자급제폰
- python
- 맥북
- Oracle
- java
- docker
- javascript
- github
- ubuntu
- SVN
- MongoDB
- 알뜰요금제
- MySQL
- vagrant
- 도넛차트
- ktm모바일
- heroku
- R
- ggplot2
- 마인크래프트
- Spring
- 셀프개통
- MyBatis
- 아이맥
- eclipse
- Google Chart Tools
- 막대그래프
- 이클립스
- ggplot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함