R:ggplot2(그래프그리기)

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동

R언어 공부를 위한 틀 틀:R

  1. R:개요
    1. R:코딩팁
    2. R:연산자
  2. R:객체
    1. R:자료형
    2. R:자료구조
  3. R:함수
    1. R:자주사용하는 함수
      1. R:aplly계열(반복문, 중복작업)
  4. R:제어문
    1. R:조건문
    2. R:반복문
  5. R:자료조작
    1. R:데이터프레임
    2. R:행렬
  6. R:데이터 저장과 불러오기
    1. R:데이터베이스
    2. R:특정조건 추출하기
  7. R:패키지
    1. R:magrittr(파이프연산자)
    2. R:dplyr(데이터프레임 조작)
    3. R:ggplot2(그래프그리기)
    4. R:KoNLP(한글 텍스트마이닝), wordcloud2(워드클라우드)
    5. R:ddply(데이터 집계, 조작)
    6. R:tidyverse(데이터를 정제하는 패키지들의 집합)
    7. R:jsonlite(JSON 파일 다루기)
    8. R:pbapply(apply계열에 진행바를 보여준다.)
  8. R:활용
    1. R:데이터 접근
    2. R:연관성분석
    3. R:분류분석
  9. R:팁
    1. R:연구용 팁

ggplot2[편집 | 원본 편집]

R과 Python에서 그래프를 그려주는 패키지.

단계 방법 사용법
패키지 부착 패키지 부착은

library(ggplot2)

library(ggthemes)

2개를 시켜야 한다.

library(ggplot2)library(ggthemes)
기초 데이터 준비 데이터셋과

x축에 둘 열을 준비

ggplot(데이터셋, aes( x = 열 ))

aesthetic(미적)의 줄임말.

ggplot(데이터셋, aes( x = 열 ))

그래프 그리기[편집 | 원본 편집]

단계 방법 사용법
각 축에 대한 막대를 그린다.

(명목형 변수에 대하여)

ggplot(데이터셋, aes( x = 열이름1 )) + geom_bar(속성)

열에 해당하는 값을 세어 막대의 크기로 표현한다.

geom_bar 속성
의도 방법 옵션 효과
색 채우기 fill='색이름' royalblue
열이름1 열마다 다른 색의 막대가 그려진다.
2가지 색 aes(fill='열이름2') x축과 다른 열을 사용하면 1번 열에 해당하면서 2번째 열에 해당하는 갯수를 세어 막대를 2가지 색으로 나누어 표현한다.
기초데이터

+ geom_bar(속성)

히스토그램

(연속형 변수에 대하여)

연속형변수를 일정구간으로 나누어 집계한다.

ggplot(데이터셋, aes( x = 열이름1 )) + geom_histogram(속성)

histogram 속성
의도 방법 옵션 효과
구간 정하기 binwidth = 구간크기 구간크기로 자른다.
테두리색 col='색이름' red 테두리색을 지정한다.
색 채우기 fill='색이름' 막대 색을 채운다.
기초데이터

+ geom_histogram(속성)

밀도그래프

(연속형 변수에 대하여)

위와 같은 개념이지만, 구간을 작게 나누어 부드러운 곡선을 그린다.

ggplot(데이터셋, aes( x = 열이름1 )) + geom_density(속성)

density 속성
의도 방법 옵션 효과
테두리색 col='색이름' red 테두리색을 지정한다.
색 채우기 fill='색이름' 막대 색을 채운다.
기초데이터

+ geom_density(속성)

박스플롯 가운데 선은 중위값,

아래는 1분위수, 위는 3분위수를 나타낸다. 그 밖의 값들은 이상치.

기초데이터

+ geom_boxplot(속성)

산점도 ggplot(데이터셋, aes( x = 열이름1, y = 열이름2 ))

다음처럼 특정 조건을 만족하는 값을 다른 색으로 처리해 계산할 수도 있다. geom_point(aes(col = 열이름)

기초데이터

+ geom_point(속성)

회귀선 geom_smooth(aes(x=열이름1, y=열이름2)), method='lm'

그래프 안에 다른 열을 넣으면 그 열별로 따로 계산된다.

geom_boxplot(aes(fill="열이름")

축 다루기[편집 | 원본 편집]

의도 설명 사용법
축의 데이터범위 설정하기 그래프의 어느 범위를 보여줄지 설정할 수 있다.

scale_y_continuous(breaks = seq(시작값, 끝값, by=공차))

그래프 +

scale_y_continuous(expand = c(0,0), breaks = seq(0, 10000, by=1000))

그래프를 축에 맞추어 그리기 scale_y_continuous(expand = c(0,0))

벡터 안의 숫자는 여백을 의미한다.

그래프 +

scale_y_continuous(expand = c(0,0))

축 바꾸기 x축을 y축과 바꾼다. 그래프 +

coord_flip()


그래프 꾸미기[편집 | 원본 편집]

범례[편집 | 원본 편집]

의도 설명 사용법
범례 달기 labs(fill = "내용") 그래프 +

labs(fill = "내용")

범례위치 수정 theme(legend.position = 속성)
속성 설명 사용법
top 범례를 그래프 위에 둔다. theme(legend.position = "top")
bottom 범례를 그래프 아래에 둔다. theme(legend.position = "bottom")
벡터 범례를 벡터 위치에 둔다. theme(legend.position = c(숫자, 숫자))
그래프 +

theme(legend.position = 속성)

범례없애기 theme(legend.position = 'none') 그래프 +

theme(legend.position = 'none')

범례 테두리 theme 안에 다음의 내용을 끼워넣는다.

theme(legend.box.background = 속성,

legend.box.margin =margin(상, 하, 좌, 우)

margin은 그래프와 테두리 사이의 여백을 의미한다.

속성 설명
element_rect() 범례를 사각형으로 감싼다.
그래프 +

theme(legend.position = 속성,

legend.box.background = element_rect,

legend.box.margin =margin(1, 1, 1, 1)

)

글자[편집 | 원본 편집]

의도 설명 사용법
글자 크기 바꾸기 theme 안에 각종 속성을 두어 적용한다.
위치 속성
x축 axis.text.x
y축 axis.text.y
범례 legend.text
그래프 +

theme(axis.text.x = element_text(size = 10)

글자각도 바꾸기 theme 안에 angle 속성을 두어 적용한다. 그래프 +

theme(axis.text.x = element_text(size = 10, angle=90)

색 채우기[편집 | 원본 편집]

각 그래프의 속성 안에 넣으면 된다.

의도 방법 및 설명 사용법
그래프색 채우기 x축에 사용한 열이름을 기입하면 데이터별로 색을 채운다.

면적이 있는 도형의 색을 채울 때 사용.

기초데이터 +

geom_bar(aes(fill=열이름))

테두리색 채우기 x축에 사용한 열이름을 기입하면 테두리 색을 바꾼다. 기초데이터 +

geom_bar(aes(col=열이름))

색 직접 채우기 색 이름을 직접 채우고 싶을 때 사용한다. 그래프 +

scale_fill_manual(values = c('색이름1', '색이름2', ...)

색 연하게 채우기 그래프를 투명하게 만들 고 싶을 때.

alpha에 0~1 사이의 숫자를 넣어 불투명도를 전달한다.

기초데이터 +

geom_bar(속성등등... , alpha=숫자)

테마[편집 | 원본 편집]

그래프 바탕을 꾸민다.

library(ggthemes) 를 추가로 불러주고 진행해야 한다.

테마 방법 및 설명 사용법
theme_classic() 기존의 코드 뒤에 덧붙인다.

아무것도 없는 흰색 바탕의 그래프를 그린다.

그래프 +

theme_classic()

theme_bw() 회색 격자선과 그래프 전체를 감싸는 검은 테두리 그래프 +

theme_bw()

theme_dark() 진한 회색 바탕에 더 진한 격자선 그래프 +

theme_dark()

theme_light() 그래프 +

theme_light()


이외 기능[편집 | 원본 편집]

의도 방법 사용법
라벨 붙이기 위의 명령 뒤에 라벨을 붙인다. 그래프

+ xlab("x라벨") + ylab("y라벨")

타이틀 붙이기 그래프

+ ggtitle("타이틀")