정보

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

    • 작성자     : 박진만

    • 작성일     : 2020-04-06

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [geom_point]

    • ggplot2 패키지의 geom_point함수는 점 플롯을 그리는 함수이다.

    • geom_point함수는 일반적으로 데이터의 산포도 등을 그릴 때 사용된다. 

    • geom_line등의 함수와 함께 사용함으로써, 점과 선으로 이루어진 그래프도 그릴 수 있다.

     

    [산포도]

    • 가상 데이터를 이용하여 x 축으로 식물의 건조 중량, y 축으로 결실 수를 점 그래프로 나타내어보자.

    library(ggplot2)
    
    x <- data.frame(
        weight = c(1.2, 1.5, 1.1, 1.6, 1.6, 1.4, 1.3, 0.9, 1.1),
        seeds  = c(26, 31, 19, 34, 38, 23, 24, 21, 24)
    )
    
    g <- ggplot(x, aes(x = weight, y = seeds))
    g <- g + geom_point()
    plot(g)

     

    [여러 항목의 산포도]

    • 가상 데이터를 이용하여 x 축으로 식물의 건조 중량, y 축으로 결실 수를 점 그래프로 나타낸다. 

    • 이 때 식물 종으로 A 종, B 종 및 C 종이 존재한다고 할 때, 종별로 분류하고 싶은 경우 ggsci 색상 팔레트를 호출하여 이용할 수 있다.

    library(ggplot2)
    library(ggsci)
    
    A <- data.frame(
        weight = c(1.2, 1.5, 1.1, 1.6, 1.6, 1.4, 1.3, 0.9, 1.1),
        seeds  = c(26, 31, 19, 34, 38, 23, 24, 21, 24)
    )
    B <- data.frame(
        weight = c(1.6, 1.7, 1.8, 1.6, 1.5, 1.9, 2.1, 2.1, 2.4),
        seeds  = c(32, 30, 41, 34, 33, 43, 46, 48, 55)
    )
    C <- data.frame(
        weight = c(1.1, 1.3, 1.6, 1.3, 1.2, 1.9, 1.8, 1.4, 1.7),
        seeds  = c(14, 13, 17, 11, 9, 21, 20, 16, 14)
    )
    
    x <- rbind(data.frame(species = "A", A),
               data.frame(species = "B", B),
               data.frame(species = "C", C))
    
    g <- ggplot(x, aes(x = weight, y = seeds, color = species))
    g <- g + geom_point()
    g <- g + scale_color_nejm()
    plot(g)

     

    • 또한 geom_smooth 함수를 함께 사용하면 회귀 직선도 산점도와 함께 그려 넣을 수 있다.

    g <- ggplot(x, aes(x = weight, y = seeds, color = species))
    g <- g + geom_point()
    g <- g + geom_smooth(method = "lm")
    g <- g + scale_color_nejm()
    plot(g)

     

    [농담도]

    • 데이터 값에 따라 점의 크기와 투명도를 조정할 수도 있다. 

    • 점의 크기는 size, 투명도 조절은 alpha인수를 사용한다.

    library(ggplot2)
    library(ggsci)
    
    A <- data.frame(
        weight = c(1.2, 1.5, 1.1, 1.6, 1.6, 1.4, 1.3, 0.9, 1.1),
        seeds  = c(26, 31, 19, 34, 38, 23, 24, 21, 24)
    )
    B <- data.frame(
        weight = c(1.6, 1.7, 1.8, 1.6, 1.5, 1.9, 2.1, 2.1, 2.4),
        seeds  = c(32, 30, 41, 34, 33, 43, 46, 48, 55)
    )
    C <- data.frame(
        weight = c(1.1, 1.3, 1.6, 1.3, 1.2, 1.9, 1.8, 1.4, 1.7),
        seeds  = c(14, 13, 17, 11, 9, 21, 20, 16, 14)
    )
    
    x <- rbind(data.frame(species = "A", A),
               data.frame(species = "B", B),
               data.frame(species = "C", C))
    
    g <- ggplot(x, aes(x = weight, y = seeds, size = seeds, alpha = seeds, color = species))
    g <- g + geom_point()
    g <- g + scale_color_nejm()
    plot(g)

     

    [다음글]

     

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

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

    shlee1990.tistory.com

     

    [이전글]

     

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

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

    shlee1990.tistory.com

     

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

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