아래 그림은 인터넷을 서핑하다 발견한 그래프 이미지 이다. 해당 이미지를 ggplot2 로 대략 따라해볼까 한다. 그룹형 막대그래프이고, 막대그래프위에는 숫자가 표현되어 있고, 범례는 우측상단에 표시, 타이틀은 중앙상단쪽에 배치되어있다. (이미지는 잘몰라서 패스) 그래프를 표현할 데이터를 만든다. 다행히 이 예시는 숫자가 다 차트에 표현되어 있어서 쉽게 만들수 있었다. 그리고 차트를 자세히 보면, 차트가 길때 막대그래프위에 숫자의 폰트크기가 좀 크고, 수치가 작으면 폰트크기가 작은것을 구현하려고 임의의 함수를 만들고, map 함수를 이용해서 font size 를 담을 s 컬럼을 추가했다. font_size = function(value){ if(value > 30){ 5 } else if(value > ..
분할막대그래프는 실제 값으로 누적해서 막대그래프를 만드는게 아니라, 전체를 100% 로 보았을때, 각 파트별 비중을 한눈에 보기위한 그래프이다. 왼쪽그림은 그냥 값을 누적한 누적막대그래프이고, 오른쪽은 각각의 값을 백분율을 구해서 그린 분할막대그래프이다. 용어는 사실 다르게 불릴 수도 있으니 개념만 참고바란다. 분할 막대그래프 그려보자. 그래프를 만들기위해 데이터를 만들어야 한다. 비례 막대차트를 만들어야 하니, 5개의 막대안에, 각각 A,B,C 3개의 종류의 데이터를 만들어본다. set.seed(1239834) tb = tibble(x = rep(1:5, each = 3), y = sample(20:70, 15), z = rep(LETTERS[1:3], 5)) # A tibble: 15 × 3 x y ..
그래프를 그릴때 x, y 축만 설정해서 데이터를 시각화 할 수도 있지만, 어떤 특정 필드를 기준으로 그룹(group)을 만들어서 표현하게 된다. 예를 들어 특정 데이터값을 바탕으로 그룹 막대그래프를 그룹핑하면 아래와 같은데, 이때 z 로 표시된 그룹정보 범례(legend)라 불리는 영역이 생성된다. library(tidyverse) set.seed(3) tb = tibble(y = sample(30:100, 8)) %>% arrange(y) %>% mutate(x = rep(1:4, each = 2), z = rep(c("1", "2"), 4)) ggplot(tb, aes(x, y, fill = z)) + geom_col(position = "dodge", width = 0.7) + coord_flip(..
ggplot2 에서 x축의 눈금선(ticks) 위치와 레이블(label) 변경방법을 정리해본다. 이전 포스팅에서 그렸던 라인그래프를 가져와서 이용하긴 할텐데, 여기서도 다시 그릴거라 참고만 하시면 된다. ggplot2 라인차트 그리기 ggplot2 로 라인차트, 선그래프를 그리고자 한다. 그리고 왼쪽편 그래프를 오른쪽처럼 디자인 해본다. 데이터를 만드는데 생각보다 신경을 많이썼다. 조금씩 누적되어 가파른 증가속도를 보여주 emflant.tistory.com 그래프를 그릴 데이터를 조금 수정한다. 개월수만큼 4년치인 x 축을 1~48로 셋팅하였다. set.seed(2200) tb = tibble(x = 0:48, y = runif(48 + 1, min = 0, max = x^2+10)) %>% mutate..
ggplot2 로 라인차트, 선그래프를 그리고자 한다. 그리고 왼쪽편 그래프를 오른쪽처럼 디자인 해본다. 데이터를 만드는데 생각보다 신경을 많이썼다. 조금씩 누적되어 가파른 증가속도를 보여주는 그래프를 하나 만들고 싶었다. library(tidyverse) set.seed(100) tb = tibble(x = 0:40, y = runif(41, min = 0, max = x^2+10)) %>% mutate(z = (cumsum(y) + 800) / 15) # A tibble: 41 × 3 x y z 1 0 8.65 53.9 2 1 8.55 54.5 3 2 11.6 55.3 4 3 11.5 56.0 5 4 12.8 56.9 6 5 27.3 58.7 7 6 40.7 61.4 8 7 12.3 62.2 9 8 ..
수평 막대그래프를 그리는 방법중의 하나를 정리해본다. 아래 왼편그림처럼 수직차트를 그려놓고, x/y 축을 뒤집어 바꾸어 오른쪽 그림처럼 변경이 가능하다. 그 기능을 제공하는 ggplot2::coord_flip 함수를 사용하면 된다. 테스트를 진행할 임시 데이터를 하나 만든다. 연도별 통계를 임의로 만들어본다. x축은 년도이고, y축은 50~150 사이의 숫자를 랜덤하게 만들어본다. library(tidyverse) tb = tibble(x = 2017:2022, y = sample(50:150, 6)) %>% mutate(z = max(y) == y) # A tibble: 6 × 3 x y z 1 2017 97 FALSE 2 2018 101 FALSE 3 2019 146 TRUE 4 2020 110 FA..
막대그래프를 그릴때, 막대위에 숫자표기를 하고 싶다면, 쉽게 설정이 가능하다. 그리고 왼편의 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 설정으로 위아래로 위치를 살짝씩 ..
막대그래프를 ggplot 으로 막대그래프를 표현하다가 한글로 x 축을 한글로 가~마 로 설정하고, y 축 근처에 (단위) 문구를 넣고 싶었다. 하지만 별다른 설정을 하지 않으면 아래와 같은 한글깨짐 현상을 보게 될지도 모른다. ggplot 을 쓰려는데 한글을 못쓸리 없다. 열심히 해결책을 찾아 본다. 우선 사전작업이 하나 있는데, 아래의 extrafont 라이브러리를 설치하고, 컴퓨터에 설치된 폰트를 불러온다. install.packages("extrafont") library(extrafont) font_import() 그리고, 그래프를 만들 데이터를 정의한다. tb = tibble(x = 1:5, y = c(10,15,5,25,20), l = c("가", "나", "다", "라", "마")) %>% ..
- Total
- Today
- Yesterday
- github
- docker
- 이클립스
- ggplot
- Google Chart Tools
- MySQL
- 마인크래프트
- python
- ggplot2
- MyBatis
- 데이터쉐어링
- ktm모바일
- 개러지밴드
- heroku
- 아이맥
- eclipse
- Spring
- vagrant
- 자급제폰
- MongoDB
- javascript
- ubuntu
- 셀프개통
- R
- SVN
- 도넛차트
- 막대그래프
- Oracle
- java
- 알뜰요금제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |