[R] ggplot2 Start

BioinformaticsAndMe








ggplot2


: ggplot2은 그래픽 문법에 기반한 R plotting 패키지로, 복잡한 그래픽을 쉽게 표현할 수 있는 강력한 툴

: 뉴질랜드 통계학자 Hadley Wickham이 개발

*Hadley는 강연의 참석자로부터 'R basic graphic에서 ggplot2으로 바꿔야 하나?'라는 질문을 받고,

'R basic graphic은 그림 그리기에 유리한 툴이지만, ggplot2은 그려진 데이터를 쉽게 이해할 수 있는 훌륭한 시각화 툴이다'라고 답함

: ggplot2 패키지는 R뿐만 아니라, Python에서도 plotnine 패키지를 통해 ggplot2 사용 가능

: ggplot2의 시각화 작업은 손으로 직접 그래프를 그리는 과정과 흡사

1) ggplot() 메소드로 축을 그림

2) geom_boxplot()/geom_bar() 등의 메소드로 그래프를 그림

3) xlabs()/ylabs() 등의 메소드로 기타 옵션을 조절




R ggplot2 예제


1. 산점도(Scatterplot)

# install.packages("ggplot2")             #ggplot2가 설치되지 않았다면, '#'을 지우고 설치 options(scipen=999)                       # 1e+48'과 같은 과학적 기수법을 사용하지 않음 library(ggplot2)                              theme_set(theme_bw())                     #bw theme를 사전 설정 data("midwest", package = "ggplot2")    #'midwest' 데이터 로딩

#ggplot2 시작 (Scatterplot) gg <- ggplot(midwest, aes(x=area, y=poptotal)) + geom_point(aes(col=state, size=popdensity)) + geom_smooth(method="loess", se=F) + xlim(c(0, 0.1)) + ylim(c(0, 500000)) + labs(subtitle="Area Vs Population", y="Population", x="Area", title="Scatterplot", caption = "Source: midwest") plot(gg)

2. 분기막대(Diverging bars)

library(ggplot2) theme_set(theme_bw()) data("mtcars")                                        #'mtcars' 데이터 로딩

mtcars$`car name` <- rownames(mtcars)     #'car names'의 새로운컬럼 생성 mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcars$mpg), 2)        #표준화 작업 mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above") mtcars <- mtcars[order(mtcars$mpg_z), ] # sort mtcars$`car name` <- factor(mtcars$`car name`, levels = mtcars$`car name`)               #플로팅에 나타날 정렬화 작업

#ggplot2 시작 (Diverging bars) ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) + geom_bar(stat='identity', aes(fill=mpg_type), width=.5) + scale_fill_manual(name="Mileage", labels = c("Above Average", "Below Average"), values = c("above"="#00ba38", "below"="#f8766d")) + labs(subtitle="Normalised mileage from 'mtcars'", title= "Diverging Bars") + coord_flip()





#아래 링크에서 ggplot2으로 그리는 50가지 종류의 R 소스코드 제공

http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html


    1. Correlation

    2. Deviation

    3. Ranking

    4. Distribution

    5. Composition

    6. Change

    7. Groups

    8. Spatial





#Reference

1) http://freesearch.pe.kr/archives/3134

2) https://wikidocs.net/33913

3) http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html







[R] ggplot2 End

BioinformaticsAndMe



'R' 카테고리의 다른 글

[R] ChIP-seq 분석  (1) 2020.01.05
[R] Circos plot  (0) 2019.12.30
[R] 상자그림(Box plot)  (0) 2019.12.10
[R] 파이차트(Pie plot)  (0) 2019.12.03
[R] 생존분석(Survival analysis)  (0) 2019.11.25

+ Recent posts