[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
#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 |