선그래프를 그릴때, 선의 높이에 색을 입히는 작업을 했었다. 이번에는 색의 변화에 대한 범례(legend)를 설정하는걸 정리해본다. 아래 포스팅을 참고하면, scale_colour_gradient 를 이용해서 컬러를 지정하는데, 여기에 몇가지 옵션을 설정하면 범례의 표현을 다양하게 할 수 있다. ggplot2 선그래프에 색깔 변경하기(scale_colour_gradient) 선그래프를 그릴때 선에 y 축값에 따라 색을 입히고 싶다면, colour 를 설정만 하면 된다. 아래 소스에보면, colour = dsci2 로 y축값을 입력했다. 그러면 디폴트로 파란 계열의 색상이 셋팅된다. 참고 emflant.tistory.com 디폴트로 아무것도 설정하지 않으면 알아서 셋팅된다. 현재 200, 300, 400,..
막대그래프에 색을 지정할때, 하나만 할 수 있거나 아니면 특정 변수를 매핑해서 변화를 줄수는 있으나, 그라데이션 효과를 주려하면 마땅한 옵션을 찾을 수가 없다.(못찾은 것일 수도 있다..) 약간 임의로 데이터를 쪼개서 잘 지정만 한다면 아래와 같이 y 값이 높을수록 더 진한 빨강으로 매핑하는 등의 효과를 줄 수 있다. 핵심은 데이터의 가공처리방법이다. 이렇게 만들기 전에, 쉬운 예제를 하나 만들어서 데이터를 이해해야 한다. a/b/c 구분별로 1 을 3개씩 가지고, 나머지 z 는 색상의 변화를 위해서 cumsum 처리한 x 필드별로 누적합산필드이다. tb_0 = tibble(x = c("A", "B", "C", "A", "B", "C", "A", "B", "C"), y = c(1,1,1,1,1,1,1,1..
선그래프를 그릴때 선에 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(..
- Total
- Today
- Yesterday
- python
- vagrant
- ktm모바일
- ggplot
- 이클립스
- eclipse
- 맥북
- Oracle
- 도넛차트
- heroku
- docker
- 마인크래프트
- javascript
- java
- 아이맥
- 셀프개통
- SVN
- 막대그래프
- R
- MongoDB
- ggplot2
- Google Chart Tools
- ubuntu
- Spring
- MySQL
- github
- MyBatis
- 알뜰요금제
- 자급제폰
- ipTIME
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |