정보

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

    • 작성자     : 박진만

    • 작성일     : 2020-04-07

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [geom_histogram]

    • 히스토그램은 데이터 분포의 특징을 확인하는 데 주로 사용되는 그래프이다.

    • ggplot에서는 geom_histogram함수에서 히스토그램을 그릴 수 있다.

     

    [히스토그램]

    • ggplot의 geom_histogram 함수를 그릴 때, aes함수의 x인수를 이용하여 히스토그램에 원하는 데이터를 지정할 수 있다.

    library(ggplot2)
    
    df <- data.frame(value = rnorm(1000, 1, 1))
    head(df)
    ##        value
    ## 1 -0.3904148
    ## 2  1.3788577
    ## 3  1.0617106
    ## 4  1.2977758
    ## 5 -0.8127540
    ## 6  1.5101867
    
    g <- ggplot(df, aes(x = value))
    g <- g + geom_histogram()
    plot(g)

     

    • 그리고 히스토그램의 폭은 binwidth로 지정할 수 있다.

    g <- ggplot(df, aes(x = value))
    g <- g + geom_histogram(binwidth = 0.1)
    plot(g)
    

     

    [포지션 옵션]

    • 여러 히스토그램을 그릴 때는 , fill인수를 이용하여 나눔과 동시에, position인수를 이용하여 히스토그램의 배열 등을 다시 지정할 필요가 있다.

    library(reshape2)
    library(ggplot2)
    library(ggsci)
    
    data <- data.frame(CDS = rnorm(1000, 20, 5),
                       exons = rnorm(1000, 25, 6),
                       introns = rnorm(1000, 45, 6))
    head(data)
    ##        CDS    exons  introns
    ## 1 22.37381 20.78157 41.65061
    ## 2 24.21539 23.83124 33.92928
    ## 3 17.69864 21.41805 54.18681
    ## 4 14.51886 27.42381 36.77361
    ## 5 23.14270 27.32694 37.98734
    ## 6 20.97776 24.98222 46.58773
    
    df <- melt(data) 
    head(df)
    ##   variable    value
    ## 1      CDS 22.37381
    ## 2      CDS 24.21539
    ## 3      CDS 17.69864
    ## 4      CDS 14.51886
    ## 5      CDS 23.14270
    ## 6      CDS 20.97776

     

    [position = "identity"]

    • position = "identity"로 지정하면 각 히스토그램이 독립적으로 그려진다. 

    • 이 경우 히스토그램이 겹쳐 한쪽이 보이지 않게되는 경우가 있기 때문에, 여기에 색상 채우기에 80 %의 투명도를 주었다.

    g <- ggplot(df, aes(x = value, fill = variable))
    g <- g + geom_histogram(position = "identity", alpha = 0.8)
    g <- g + scale_fill_npg()
    plot(g)

     

    [position = "dodge"]

    • position = "dodge" 로 지정하면 각 히스토그램을 막대그래프와 유사한 형태로 그릴 수 있다.

    g <- ggplot(df, aes(x = value, fill = variable))
    g <- g + geom_histogram(position = "dodge")
    g <- g + scale_fill_npg()
    plot(g)

    [position = "stack"]

    • position = "stack" 으로 지정하면 각 히스토그램이 쌓여 그려진다.

    g <- ggplot(df, aes(x = value, fill = variable))
    g <- g + geom_histogram(position = "stack")
    g <- g + scale_fill_npg()
    plot(g)

     

    [position = "fill"]

    • position = "fill" 로 지정하면 각 히스토그램의 비율이 그려진다.

    g <- ggplot(df, aes(x = value, fill = variable))
    g <- g + geom_histogram(position = "fill")
    g <- g + scale_fill_npg()
    plot(g)

     

    [히스토그램과 밀도 표시]

    • 히스토그램에 밀도 추정 곡선을 추가로 그려 넣을 수도 있다.

    • 이 경우 geom_histogram히스토그램을 그린 후 geom_density함수를 더한다.

    library(reshape2)
    library(ggplot2)
    library(ggsci)
    
    data <- data.frame(CDS = rnorm(1000, 20, 5),
                       exons = rnorm(1000, 25, 6),
                       introns = rnorm(1000, 45, 6))
    df <- melt(data) 
    
    g <- ggplot(df, aes(x = value, y = ..density.., fill = variable))
    g <- g + geom_histogram(position = "identity", alpha = 0.8)
    g <- g + geom_density(aes(color = variable, alpha = 0.2), show.legend = F)
    g <- g + scale_fill_npg() + scale_color_npg()
    plot(g)

     

     

    [다음글]

     

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

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

    shlee1990.tistory.com

     

    [이전글]

     

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

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

    shlee1990.tistory.com

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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