
ggplot2 로 아래와 같이 막대그래프를 그려본다. 막대그래프를 하나만 그리는게 아니라 막대뒤에 어두운 색으로 하나 더 그려줬다. y축을 표시하지 않는 대신, 어느정도 최대치 높이까지 채워졌는지 느낌을 준 정도이다. 데이터를 먼저 만들어놓는다. x축 10개의 값을 만들고, 높이y를 랜덤하게 sample 함수를 이용해서 10~60사이로 정한다. 마지막으로 막대그래프가 다 같은 색이면 단조로울거 같아서 z필드에 a, b 2개의 유형을 정의했다. tb1 = tibble(x = 1:10, y = sample(10:60, 10), z = rep(letters[1:2], 5)) tb1 # A tibble: 10 × 3 x y z 1 1 32 a 2 2 44 b 3 3 24 a 4 4 57 b 5 5 16 a 6 ..

아래와 같이 막대그래프를 만들어보고자 한다. 컨셉은, 가장 높은 막대에만 가장 진한색상으로 강조하고, 년도와 건수로 더 강조해본다. #tidytuesday 에서 데이터를 하나 가져와서 샘플로 사용한다. 샌프란시스코를 기준으로 년도별 건수만 집계해놓는다. rent % filter(city == 'san francisco') %>% group_by(year) %>% summarise(count = n()) %>% arrange(year) 우선 세줄 정도의 코딩으로 간단한 막대그래프를 만들수 있다. 하지만 디자인이 아쉽다. ggplot(rent_sanfrancisco, aes(year, count, fill = count)) + geom_col() + theme(legend.position = "none") ..

막대그래프에 색을 지정할때, 하나만 할 수 있거나 아니면 특정 변수를 매핑해서 변화를 줄수는 있으나, 그라데이션 효과를 주려하면 마땅한 옵션을 찾을 수가 없다.(못찾은 것일 수도 있다..) 약간 임의로 데이터를 쪼개서 잘 지정만 한다면 아래와 같이 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..

막대그래프를 그리다보면, 음수/양수가 혼재된 막대그래프를 그려야 할 때가 있다. 막대그래프위에 숫자표기를 해서 수치를 강조해볼까 한다. 그리고 마지막에 약간의 디자인을 조정해서 오른쪽처럼 변경해볼까 한다. #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 > ..

막대그래프를 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("가", "나", "다", "라", "마")) %>% ..

아래와 같은 막대그래프를 하나 그려보면서 공부한걸 정리해본다. 간단해 보이지만, 막대그래프를 y 축을 기준으로 표현했고, 하나의 값으로 그린게 아니라 여러값을 그룹핑하여 쌓아(stacked) 표현했고, 마지막으로 수치들을 막대그래프 위에 혹은 우측에 텍스트로 표현하는 것까지 구현해야 한다. 그래프를 그리고자하는 스킬보다는 데이터를 이해하는게 더 중요하다. 아래와 같은 그룹형으로 스택(stacked)형의 막대를 쌓기 위해서는 기본적으로 수치간에 그룹핑을 할 수 있는 값들이 추가로 필요하다. 여기서 date 는 양배추 심은 일자, cultivar 는 양배추 품종, weight 양배추 수확 무게 인듯 하다. 어쨋든 일자별로 심은 품종별로 무게를 bar 차트로 구현하는게 목적이며, 그 그룹핑을 할 수 있는 컬럼..
- Total
- Today
- Yesterday
- Spring
- MongoDB
- 아이맥
- heroku
- R
- MyBatis
- python
- docker
- 마인크래프트
- 자급제폰
- vagrant
- ggplot2
- java
- ktm모바일
- SVN
- eclipse
- ipTIME
- 막대그래프
- 도넛차트
- 셀프개통
- Google Chart Tools
- 알뜰요금제
- MySQL
- javascript
- 맥북
- ubuntu
- 이클립스
- github
- ggplot
- Oracle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |