정보

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

    • 작성자     : 박진만

    • 작성일     : 2020-04-07

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 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)

     

    [다음글]

     

    [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

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기