[R] R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (facet_grid)

 정보

  • 업무명     : R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (facet_grid)

  • 작성자     : 박진만

  • 작성일     : 2020-04-07

  • 설   명      :

  • 수정이력 :

 

 내용

[개요]

  • R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다. 

  • 통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.

  • 또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.

  • 특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.

  • 또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.

 

digital-marketing-1433427_1280 (1).jpg

 

[특징]

  • 데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

     

[기능]

  • 데이터형 소개

 

[활용 자료]

  • 없음

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 소스 코드 예시 참조

 

[사용 OS]

  • Windows 10

 

[사용 언어]

  • R v3.6.2

  • R Studio v1.2.5033

 

 소스 코드

[facet_grid]

  • facet_grid 를 이용하여 여러 그래프를 하나의 플롯에 표시 할 수 있다.

  • 아래의 코드는 샘플 데이터를 생성하여 여러 그래프를 그리는 예시이다.

library(reshape2)
library(ggplot2)

gene <- c("THC", "MAPKKKK", "GAL1", "ABA1")
time <- c("0 hr", "2 hr", "4 hr", "8 hr", "12 hr")

sampleA <- sampleB <- sampleC <- matrix(0, ncol = length(time), nrow = length(gene))
colnames(sampleA) <- colnames(sampleB) <- colnames(sampleC) <- time
rownames(sampleA) <- rownames(sampleB) <- rownames(sampleC) <- gene
for (i in 1:nrow(SampleA)) {
    sampleA[i, ] <- rnorm(5, mean = c(1200, 1500, 1600, 1300, 1000), sd = 100)
    sampleB[i, ] <- rnorm(5, mean = c(1200, 1500, 1600, 1300, 1000), sd = 200)
    sampleC[i, ] <- rnorm(5, mean = c(1200, 1500, 1600, 1300, 1000), sd = 150)
}

sampleA
##             0 hr     2 hr     4 hr     8 hr    12 hr
## THC     1356.382 1449.591 1636.928 1351.249 1015.068
## MAPKKKK 1046.920 1455.879 1625.095 1297.037 1199.606
## GAL1    1147.616 1479.081 1500.792 1238.004 1056.606
## ABA1    1228.956 1521.725 1599.352 1254.185 1136.959

datA <- data.frame(smaple = "Sample A", melt(sampleA))
datB <- data.frame(smaple = "Sample B", melt(sampleB))
datC <- data.frame(smaple = "Sample C", melt(sampleC))

dat <- rbind(rbind(datA, datB), datC)
colnames(dat) <- c("Sample", "Gene", "Time", "FPKM")
head(dat)
##     Sample    Gene Time    FPKM
## 1 Sample A     THC 0 hr 1356.382
## 2 Sample A MAPKKKK 0 hr 1046.920
## 3 Sample A    GAL1 0 hr 1147.616
## 4 Sample A    ABA1 0 hr 1228.956
## 5 Sample A     THC 2 hr 1449.591
## 6 Sample A MAPKKKK 2 hr 1455.879

 

  • 다음으로 ggplot을 이용하여 그래프를 그려 나간다. 

  • 그 중에서 facet_grid함수를 이용하여 여러 그래프를 어떤 순서로 정렬할지의 여부를 지정한다.

  •  예를 들어, 그래프는 행 Gene마다 열은 Time마다 플롯하고 싶으면 Gene ~ Time를 지정한다.

g <- ggplot(dat, aes(x = Sample, y = FPKM, fill = Sample))
g <- g + geom_bar(stat = "identity", postion = "dodge")
g <- g + facet_grid(Gene ~ Time, scales="free_y")
g <- g + theme(axis.text.x = element_text(angle = 90, hjust = 0.5))
g <- g + scale_fill_brewer(palette = "Set1")
plot(g)

etc-image-1

 

[다음글]

 

[R] R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (색과 채우기 지정)

정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (색과 채우기 지정) 작성자 : 박진만 작성일 : 2020-04-07 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래..

shlee1990.tistory.com

 

[이전글]

 

[R] R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (geom_histogram)

정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (geom_histogram) 작성자 : 박진만 작성일 : 2020-04-07 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍..

shlee1990.tistory.com

 

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음