정보

    • 업무명     : R을 이용한 통계 분석 및 데이터 시각화 : 막대그래프

    • 작성자     : 박진만

    • 작성일     : 2020-04-01

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [막대그래프]

    • 막대 그래프는 주로 카테고리로 분류되는 데이터의 시각화에 이용된다.

    • R은 barplot함수를 이용하여 막대 그래프를 그릴 수 있다. 

    • 그리고 옵션 등을 제공함으로써 누적 막대 그래프 등을 그릴 수 있고, 또한 arrows함수를 이용하여 차트에 오차 막대를 겹쳐서 볼 수도 있다.

     

    [막대그래프] 벡터 데이터

    • 아래의 샘플 코드는 있는 상태 하에서 측정 된 5 개의 유전자 (a, b, c, d, e)의 발현 량 (logFPKM)를 막대 그래프로 그리는 예.시이다. 

    • 째, 유전자의 발현 량을 벡터 x에 할당한 다음 names함수에서 벡터 x의 각 요소에 이름을 붙인다.

    x <- c(21.3, 22.5, 34.1, 12.9, 23.1)
    names(x) <- c("a", "b", "c", "d", "e")
    
    barplot(x, xlab = "gene", ylab = "logFPKM")

    • 막대 그래프를 그릴 때, 항목의 이름이 긴 경우 이름이 가로축에 기록 될 때, 좌우의 라벨과 겹쳐 보이지 않게된다. 

    • 대책 방법으로 가로 축 레이블을 세로로 놓는 경우도 있다.

    barplot(x, las = 2, xlab = "gene", ylab = "logFPKM")

     

    [막대그래프] 비교 데이터

    • 다음 예시 코드는 처리 전과 처리 후 측정 된 5 개의 유전자 (a, b, c, d, e)의 발현 량 (logFPKM)를 막대 그래프로 그리는 예시이다.

    • 행렬을 준비하고, 첫 번째 열을 처리하기 전에 두 번째 처리 후로서 또 각 행을 유전자로 발현량 행렬을 준비한다.

    • 다음 행렬의 행과 열에 이름을 붙이고, barplot함수 막대 그린다. 여러 항목이기 때문에 막대를 나란히 그리는 데 beside = TRUE이용하고 또한 항목 이름도 표시하기 위해 legend = TRUE를 이용하였다.

    x <- cbind(c(21.3, 22.5, 34.1, 12.9, 23.1),
               c(25.9, 26.1, 40.2, 13.1, 22.8))
    colnames(x) <- c("control", "treatment")
    rownames(x) <- c("a", "b", "c", "d", "e")
    x
    ##   control treatment
    ## a    21.3      25.9
    ## b    22.5      26.1
    ## c    34.1      40.2
    ## d    12.9      13.1
    ## e    23.1      22.8
    
    barplot(x, beside = TRUE, legend = TRUE, xlab = "gene", ylab = "logFPKM")

     

    • 행렬 x의 행과 열을 바꾸어 ( t함수) 그린 경우는 다음과 같다.

    barplot(t(x), beside = TRUE, legend = TRUE, xlab = "gene", ylab = "logFPKM")

     

    [막대그래프] 오류바 지정하기

    • 예를들어 복제 실험이 행해진 경우, 그 평균을 막대 그래프의 높이, 표준 편차를 오류 바로 시각화 할 수있다. 

    • 차트에서 오차 막대를 덧붙일 때에는 먼저 데이터의 평균과 표준 편차를 계산하고 barplot함수에서 평균을 막대 그래프로 그려 그 위에 arrows함수에서 평균 ± 표준 편차의 오류를 그릴 수 있다.

    • 다음 샘플 코드는 3 번 복제 실험에서 측정 한 5 개의 유전자의 발현 량을 막대 그래프로 그리고 있다.

    • 막대 그래프를 그린 후 오류 막대를 그릴 때 세로축의 제한에 오차 막대의 위쪽 절반이 그려지지 않는 경우가 있다.

    • 이를 피하기 위해 barplot에서 막대 그래프를 그릴 때 세로축을 평균 + 표준 편차의 최대 값이되도록 설정한다 ( ylim = c(0, max(xm + xs))).

    x <- rbind(c(20.3, 22.5, 32.1, 12.9, 23.1),
               c(21.4, 22.1, 34.2, 13.1, 22.8),
               c(20.9, 23.3, 33.6, 12.3, 24.8))
    colnames(x) <- c("a", "b", "c", "d", "e")
    rownames(x) <- c("rep1", "rep2", "rep3")
    x
    ##         a    b    c    d    e
    ## rep1 20.3 22.5 32.1 12.9 23.1
    ## rep2 21.4 22.1 34.2 13.1 22.8
    ## rep3 20.9 23.3 33.6 12.3 24.8
    
    
    xm <- apply(x, 2, mean)
    xs <- apply(x, 2, sd)
    
    # bar chart
    b <- barplot(xm, xlab = "gene", ylab = "logFPKM", ylim = c(0, max(xm + xs)))
    
    # error bar
    arrows(b, xm - xs, b, xm + xs, code = 3, lwd = 1, angle = 90, length = 0.1)

     

    [막대그래프] 누적 막대그래프

    • 누적 막대 그래프의 예시는 아래와 같다.

    x <- cbind(
      c(1.0, 1.0, 1.2, 1.1),
      c(1.7, 1.5, 1.5, 1.8),
      c(2.0, 2.1, 2.2, 2.6),
      c(2.7, 3.1, 3.2, 3.1),
      c(4.2, 4.0, 4.6, 3.6)
    )
    colnames(x) <- c("a", "b", "c", "d", "e")
    rownames(x) <- c("2016", "2017", "2018", "2019")
    x
    ##        a   b   c   d   e
    ## 2016 1.0 1.7 2.0 2.7 4.2
    ## 2017 1.0 1.5 2.1 3.1 4.0
    ## 2018 1.2 1.5 2.2 3.2 4.6
    ## 2019 1.1 1.8 2.6 3.1 3.6
    
    barplot(t(x), legend = TRUE)

     

    [다음글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : 벤 다이어그램

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

    shlee1990.tistory.com

     

    [이전글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : 히스토그램

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

    shlee1990.tistory.com

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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