정보

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

    • 작성자     : 박진만

    • 작성일     : 2020-04-07

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [색과 채우기 지정]

    • ggplot2 그래프의 색상은 색상 테두리 (color) 및 채우기 (fill)로 지정한다. 

    • 그리고 점이나 선 등의 색상은 color로 지정한다.

    • 막대 그래프와 히스토그램 등에 대해 테두리 color 채우기는 fill로 지정한다.

     

    [색 지정]

    • 플롯 데이터에 어떤 열 벡터에 따라 색상을 나눌 것인지 여부를 결정하고, color인수에 열 이름을 제공할 수 있다.

    library(reshape2)
    library(ggplot2)
    
    df <- data.frame(
      date  = rep(1:4, times = 2),
      reps  = rep(c("A", "B"), each = 4),
      value = c(rnorm(4, 5, 1), rnorm(4, 8, 2))  
    )

     

    • 예를 들어, value열의 값의 대소에 따라 색상을 나누기를 원한다면 color = value를 지정한다.
    g <- ggplot(df, aes(x = date, y = value, group = reps, color = value))
    g <- g + geom_line()
    plot(g)

     

    • 다음은 color = reps지정 본다.

    g <- ggplot(df, aes(x = date, y = value, group = reps, color = reps))
    g <- g + geom_line()
    plot(g)

     

    [채우기 지정]

    • 먼저 채우기를 지정하기 위해 샘플 데이터를 지정한다.

    library(reshape2)
    library(ggplot2)
    
    df <- data.frame(
      group    = c("A", "A", "A", "B", "B", "B"),
      subgroup = c("u", "v", "w", "u", "v", "w"),
      value    = c(1.1, 2.3, 2.1, 1.8, 2.2, 1.9)
    )

     

    • 여기에서, 예를 들어 막대 그래프를 그린다고 할 때, 이 때 subgroup마다 색상을 나누고 싶다면 df중간의 subgroup를 fill인수로 전달하면 된다.

    g <- ggplot(df, aes(x = group, y = value, fill = subgroup)) 
    g <- g + geom_bar(stat = "identity")
    plot(g)

     

    • 반대로, group마다 색상을 나누고 싶다면 fill = group으로 지정하면 된다.

    g <- ggplot(df, aes(x = group, y = value, fill = group)) 
    g <- g + geom_bar(stat = "identity")
    plot(g)

     

    [scale_color_brewer / scale_color_manual]

    • R 패키지에서 RColorBrewer 라고 불리는 패키지가 다양한 색상 팔레트를 제공하고 있다.

    • ggplot에서 이를 사용하려면 scale_color_brewer레이어를 추가한다.

    • 팔레트의 이름은 palette인수로 지정한다.

    library(reshape2)
    library(ggplot2)
    
    df <- data.frame(
      date  = rep(1:4, times = 2),
      reps  = rep(c("A", "B"), each = 4),
      value = c(rnorm(4, 5, 1), rnorm(4, 8, 2))  
    )
    
    g <- ggplot(df, aes(x = date, y = value, group = reps, color = reps))
    g <- g + geom_line()
    g <- g + scale_color_brewer(palette = "Set1")
    plot(g)

     

    • ggplot 또는 RColorBrewer가 준비된 팔레트를 이용하지 않고 독자적으로 정의한 색상도 이용할 수 있다.

    • 이 경우 scale_color_manual를 이용할 수 있다.

    g <- ggplot(df, aes(x = date, y = value, group = reps, color = reps))
    g <- g + geom_line()
    g <- g + scale_color_manual(values = c("#ff9900", "#339900"))
    plot(g)

     

    [scale_fill_brewer / scale_fill_manual]

    • R 패키지에서 RColorBrewer 라고 불리는 패키지가 다양한 색상 팔레트를 제공하고있다.

    • ggplot에서이를 사용하려면 scale_fill_brewer레이어를 추가한다.

    • 팔레트의 이름은 palette인수로 지정한다.

    library(reshape2)
    library(ggplot2)
    
    df <- data.frame(
      group    = c("A", "A", "A", "B", "B", "B"),
      subgroup = c("u", "v", "w", "u", "v", "w"),
      value    = c(1.1, 2.3, 2.1, 1.8, 2.2, 1.9)
    )
    
    g <- ggplot(df, aes(x = group, y = value, fill = subgroup)) 
    g <- g + geom_bar(stat = "identity")
    g <- g + scale_fill_brewer(palette = "Set1")
    plot(g)

     

    • 색상 팔레트를 직접 정의 할 경우 scale_fill_manual을 사용한다.

    g <- ggplot(df, aes(x = group, y = value, fill = subgroup)) 
    g <- g + geom_bar(stat = "identity")
    g <- g + scale_fill_manual(values = c("#009900", "#006699", "#990066"))
    plot(g)

     

    [다음글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (유효숫자 표시)

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

    shlee1990.tistory.com

     

    [이전글]

     

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

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

    shlee1990.tistory.com

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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