정보

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

    • 작성자     : 박진만

    • 작성일     : 2020-04-07

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [geom_tile]

    • ggplot에서 히트 맵을 그릴 때 geom_tile를 이용한다. 

    • geom_tile를 이용하는 경우, 클러스터링이되지 않으므로, 미리 클러스터링을하고 그 순서를 얻을 필요가 있다.

    library(ggplot2)
    library(reshape2)
    
    data <- matrix(rnorm(100), ncol = 5)
    colnames(data) <- c("A", "B", "C", "D", "E")
    rownames(data) <- paste0("gene", 1:nrow(data))
    head(data)
    ##                 A           B         C            D           E
    ## gene1 -0.11711716 -1.11684283 0.1254322  1.488207104 -0.45142685
    ## gene2 -1.16152046 -0.12906816 0.3689287  0.005527114 -0.99741336
    ## gene3  2.01008582  0.37257467 1.5218607  0.442741545 -0.23218301
    ## gene4 -0.26018198  0.82453768 0.3301645 -0.345951426  1.08438069
    ## gene5 -2.01863764 -0.08232904 0.7288576 -1.249200664 -0.06960734
    ## gene6  0.04873271  0.63207776 1.7279752 -0.736363727 -0.08203153
    
    df           <- melt(data)
    colnames(df) <- c("Gene", "Group", "Value")
    head(df)
    ##    Gene Group       Value
    ## 1 gene1     A -0.11711716
    ## 2 gene2     A -1.16152046
    ## 3 gene3     A  2.01008582
    ## 4 gene4     A -0.26018198
    ## 5 gene5     A -2.01863764
    ## 6 gene6     A  0.04873271

     

    • 다음으로 클러스터링을 수행하고 그 결과에 따라 데이터의 순서를 정렬한다.

    dev.new()
    clr <- heatmap(data, scale = "none")
    dev.off()
    
    gene.idx  <- rownames(data)[clr$rowInd]
    group.idx <- colnames(data)[clr$colInd]
    
    df$Gene  <- factor(df$Gene, levels = gene.idx)
    df$Group <- factor(df$Group, levels = group.idx)

     

    • 마지막으로 geom_tile을 이용하여 히트 맵을 그린다.

    ghm <- ggplot(df, aes(x = Group, y = Gene, fill = Value))
    ghm <- ghm + geom_tile()
    ghm <- ghm + theme_bw()
    ghm <- ghm + theme(plot.background = element_blank(),
                       panel.grid.minor = element_blank(),
                       panel.grid.major = element_blank(),
                       panel.background = element_blank(),
                       axis.line = element_blank(),
                       axis.ticks = element_blank(),
                       strip.background = element_rect(fill = "white", colour = "white"),
                       axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
    ghm <- ghm + scale_fill_gradientn("value", colours = rev(brewer.pal(9, "Spectral")), na.value = "white")
    ghm <- ghm + xlab("Group") + ylab("Gene")
    ghm

     

    [다음글]

     

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

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

    shlee1990.tistory.com

     

    [이전글]

     

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

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

    shlee1990.tistory.com

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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