오늘은 파이차트(원모양의 그래프, 원그래프) 혹은 가운데가 비어있는 도넛차트를 만들어보려 한다. 기본 데이터셋인 mtcars 를 활용해서 우선 bar 차트를 만들어야 한다. 여기서 중요한건, factor 로 x축을 만들면 안되고, 숫자형으로 정의 되어야 한다. 만들고나면 화면에 꽉찬 막대그래프가 그려진다. library(tidyverse) ggplot(mtcars, aes(x = 1, fill = factor(cyl))) + geom_bar() 원형그래프(Pie chart) 아까 만든 막대그래프를 원형으로 돌돌 말아본다고 생각하면 쉽다. coord_polar 로 무슨 축을 기준으로 원형으로 표현할지 정한다. 손쉽게 파이차트(원그래프)가 만들어진다. ggplot(mtcars, aes(x = 1, fill ..
ggplot2 로 정규분포표, 확률밀도함수 그래프를 그려보기로 한다. 아래 그림은 인터넷 서핑해서 구해놓은 그래프인데, R - ggplot2 로 똑같이 구현할 예정이다. 그래프만 그리는 건 아니고, 화살표며 f(x) 같은 수식 등 다 넣어보려 한다. 분포함수, 확률밀도함수 하기전에 알아야 할 몇가지 함수가 있다. dnorm, pnorm, qnorm 을 알아야 한다. 위 그래프 기준으로 우선 참고해서 이해하면 쉽다. # x축의 값을 입력하면, 확률밀도함수의 f(x) 의 값을 리턴. dnorm(1) # [1] 0.2419707 --> y 값을 뜻함. # x축의 값을 입력하면, x값이하의 f(x)의 적분값(확률밀도함수의 넓이)를 리턴 pnorm(1) # [1] 0.8413447 --> x 약 x = 1 이 리..
R 프로그램에서 벡터를 만드는 방법은 여러가지가 있다. 직접 입력하거나, seq/rep/sample 등의 벡터생성하는 함수들을 사용하거나, 빈값으로 length 만 정하는 등 여러가지이다. 실제 퍼포먼스는 어떨지는 좀 확인은 해봐야겠으나, loop 를 사용하는 것은 R 에서는 권장하진 않는다. 일반적인 프로그램언어라면 for/while 문은 어느정도의 기본 문법이다보니 사용을 많이 하게 되는데, R 에서는 대부분 벡터를 입력받아 벡터로 리턴하는 함수체계가 대부분이라 loop 를 거의 사용하지 않도록 코딩을 할 수 있다. 특정 조건을 만족하는 숫자인 경우, 문자열로 치환하여 별도의 벡터형으로 저장해보자. 0~4는 C등급, 5~8은 B등급, 9~10은 A등급으로 변경하려면 어떻게 해야 할까. 일반적이라면 f..
ggplot2 그래프 일부분만 줌인해서 확대해서 보거나, 더 넓은 범위위에서 전체그림을 보고 싶을 때가 있다. ggplot 라이브러리의 coord_cartesian 함수를 사용하면 그래프를 x축 y축을 축소, 확대 하는게 손쉽게 가능하다. 가볍게 라인그래프 하나 그려본다. library(tidyverse) t = tibble(x = c(4,5,6), y = c(50, 30, 40)) ggplot(t, aes(x, y))+ geom_line() 여기서 값은 3개뿐이지만, 그 외의 범위로 보고 싶다면 어떻게 해야 할까. 만약 x 축을 1~10의 범위로 보고싶다면, 아래와 같이 실행하면 된다. limits 로 1에서부터 10까지 보고싶은 범위를 지정하고, breaks 를 이용해서 x 축의 레이블을 정한다. 2..
숫자와 문자가 섞여있을때, 문자만 분리하고 싶다면, 아래와 같이 하면된다. 경고메시지가 나오긴 하지만 무시해도 된다. a = c(10,10,10, 'a', 'b', 'c', 20, 30, 'd') # [1] "10" "10" "10" "a" "b" "c" "20" "30" "d" as.numeric(a) # [1] 10 10 10 NA NA NA 20 30 NA is.na(as.numeric(a)) # [1] FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE a[is.na(as.numeric(a))] # [1] "a" "b" "c" "d" # Warning message: # NAs introduced by coercion 데이터 프레임으로 하는 경우도 비슷하다. ..
텍스트 데이터 분석을 위한 tidytext 라이브러리의 unnest_tokens 함수에 대한 사용 예제를 정리한다. 샘플데이터를 우선 하나 d 로 정의한다. library(tidytext) library(dplyr) library(janeaustenr) d % unnest_tokens(word, txt) # 둘다 동일한 결과를 만든다. d %>% unnest_tokens(output = word, input = txt, token = "words") # A tibble: 122,204 × 1 word 1 pride 2 and 3 prejudice 4 by 5 jane 6 austen 7 chapter 8 1 9 it 10 is # … with 122,194 more rows 빌트인 token 옵션만 사용..
ggplot 으로 그래프를 그리다보면, x 축에 너무 많은 값들이 표기가되서 너무 빽빽하게 보이는 현상이 있다. 이건 아마도 문자열값(character)이다보니 발생하는 문제인데, 일부 대표값 혹은 본인이 원하는 특정값만 가지고 x축을 표현할 수 있다. 아래 그림을 보면, x 축의 값들이 너무 빽빽하다보니 중첩되서 알아볼 수 없게 된다. t1 = tibble(연도 = paste0(as.character(2015:2026), '-01-01'), 인구수 = c(1014, 1245, 1446, 1635, 1811, 1973, 2123, 2261, 2388, 2504, 2609, 2704)) t1 # A tibble: 12 × 2 # 연도 인구수 # # 1 2015-01-01 1014 # 2 2016-01-01..
- Total
- Today
- Yesterday
- 아이맥
- 도넛차트
- vagrant
- 막대그래프
- 셀프개통
- MySQL
- eclipse
- Google Chart Tools
- docker
- MyBatis
- github
- Spring
- 알뜰요금제
- ktm모바일
- R
- ggplot2
- Oracle
- ipTIME
- javascript
- 자급제폰
- java
- ubuntu
- 맥북
- SVN
- ggplot
- MongoDB
- python
- 이클립스
- 마인크래프트
- heroku
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |