선그래프를 그릴때 선에 y 축값에 따라 색을 입히고 싶다면, colour 를 설정만 하면 된다. 아래 소스에보면, colour = dsci2 로 y축값을 입력했다. 그러면 디폴트로 파란 계열의 색상이 셋팅된다. 참고한 데이터는 여기에서 받아 사용하였다(tidytuesday) ggplot(drought_fips2_ak_f, aes(x = year2, y = dsci2, group = 1, colour = dsci2))+ geom_line(size = 1) + theme_void(base_family = "AppleSDGothicNeo-ExtraBold") + theme( plot.background = element_rect(fill = "#F1F0EA", color = "#F1F0EA"), plot.ma..
막대그래프를 그리다보면, 음수/양수가 혼재된 막대그래프를 그려야 할 때가 있다. 막대그래프위에 숫자표기를 해서 수치를 강조해볼까 한다. 그리고 마지막에 약간의 디자인을 조정해서 오른쪽처럼 변경해볼까 한다. #tidytuesday 데이터 일부를 가져와서 활용하고자 한다. industry 를 그룹핑해서 랭킹 상승/하락의 sum 을 구해서 22년과 21년대비 어느산업이 더 순위가 상승했는지 알아보는 차트를 만들어보고자 한다. poll % filter(year == 2021) %>% group_by(industry) %>% summarise(n_total = sum(replace_na(change,0))) %>% filter(n_total != 0) %>% mutate(pos = n_total >= 0) %>%..
일반적으로 데이터를 가공하지 않은 상태로 막대그래프를 그리면, 아래와 같이 뒤죽박죽 나오게 된다. 보는데 문제는 없지만, 그래프를 딱 봤을때, 최소/최대값이 무엇인지 눈으로 비교하면서 찾아야 하는 불편함이 있다. 아래 처럼 막대그래프를 정렬하면, 어느값이 가장 높은지 낮은지 비교하며 찾을 필요없이 가장 우측 혹은 좌측을 주시하게 되면서 훨씬 이해하기 쉬운 그래프가 된다. 정렬의 기술을 알기전에, 우선 샘플 데이터를 하나 가져온다. tidytuesday 데이터를 하나 가져다 쓴다. 데이터의 설명은 여기를 클릭해서 참고 바란다. library(patchwork) library(tidyverse) pride_aggregates % janitor::clean_names() %>% filter(company !=..
아래 그림은 인터넷을 서핑하다 발견한 그래프 이미지 이다. 해당 이미지를 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 ..
- Total
- Today
- Yesterday
- java
- javascript
- github
- ubuntu
- Oracle
- 막대그래프
- ggplot
- 셀프개통
- 도넛차트
- ggplot2
- 이클립스
- docker
- MyBatis
- python
- vagrant
- R
- eclipse
- SVN
- MySQL
- 맥북
- ipTIME
- 자급제폰
- 마인크래프트
- MongoDB
- ktm모바일
- 알뜰요금제
- heroku
- Spring
- 아이맥
- Google Chart Tools
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |