Idealim
article thumbnail
Published 2023. 12. 9. 02:05
[R 데이터시각화] ggplot Data/R

이번 글에서는 R의 데이터 시각화 패키지인 ggplot에 대해 알아보겠습니다. 저번 글에서는 R의 내장 함수인 plot 함수에 대해 다뤘는데요.

따라서 저번 글에서 다룬 plot의 주요 파라미터들에 대해 알고 있다고 가정하고 설명하겠습니다. 잘 모르시는 경우 먼저 해당 을 참고해주세요! 

1. ggplot 에 대하여..

ggplot2는 R에서 사용되는 강력하고 유연한 그래픽 패키지입니다.

2. ggplot의 주요 객체

ggplot2로 생성된 그림은 R의 객체로 구성되는데요. ggplot의 주요 객체를 살펴보면 다음과 같습니다.

  • ggplot 객체: 그래픽을 생성하는 기본 객체입니다.
  • 하위 객체 
    • aes 객체: 미적 매핑을 정의하기 위한 객체입니다. 
    • geom 객체: 기하학적 객체를 추가하여 그래프의 형태를 정의합니다.
    • theme 객체 : 그래프의 배경색, 폰트, 선의 종류 등 그래프의 외관이나 레이아웃을 조절하기 위한 객체입니다. 
    • labs 객체: 그래프의 제목이나 축 레이블을 조절하기 위한 객체입니다. 
    • coord 객체: 좌표 시스템을 정의하기 위한 객체입니다.

3. ggplot 설치 및 불러오기

<r />
# 설치 install.packages("ggplot2") # 불러오기 library(ggplot2)

4. qplot

qplot"Quick Plot"의 줄임말로, ggplot2 패키지에서 제공하는 간단한 그래프 생성 함수 중 하나입니다.  바로 qplot 함수를 통해 plot을 그려보겠습니다. 

<r />
library(ggplot2) library(gridExtra) x <- c(0.5, 1.2, 2.6, 3.2) y <- c(1.1, 1.6, 3.3, -1.1) plot1 <- qplot(x, y, main = "title", xlab="x axis", ylab="y axis") plot2 <- qplot(x, y, main = "geom = \"blank\"", xlab="x axis", ylab="y axis", geom="blank") grid.arrange(plot1, plot2, ncol = 2) # par(mfrow=c(1,2)) 동일한 기능
  • main, xlab, ylab : plot() 함수의 인자와 동일합니다.
  •  geom : plot의 타입을 정하는 파라미터로, plot()의 type 역할을 대체합니다. geom에 대해서는 아래에서 자세히 다루겠습니다.
  • gridExtra: 여러 개의 그래프를 배열로 표시하거나 조작하는 데 사용하는 패키지입니다.
    • grid.arrange: 여러 개의 grid 그래픽 객체를 하나의 그림으로 배열합니다.

5. geom

geom_point 함수는 산점도를 추가하고, geom_line 함수는 선을 추가합니다.

위에서 생성한 plot2 객체에 산점도와 선을 추가해보겠습니다.

<r />
qplot(x, y, main = "title", xlab="x axis", ylab="y axis", geom="blank") + geom_point(size=2, shape=6, color='blue') + geom_line(color='red', linetype=2)

geom_point 의 주요 파라미터

  • size: 점의 크기를 설정합니다.
  • color: 점의 색상을 설정합니다.
  • shape: 점의 모양을 설정합니다. 여러 가지 숫자나 문자열로 표현될 수 있습니다.
  • fill: 점의 내부를 채우는 색상을 설정합니다.
  • alpha: 점의 투명도를 설정합니다.
  • stroke: 점의 테두리 색상을 설정합니다.

geom_line 의 주요 파라미터

  • size: 선의 굵기를 설정합니다.
  • color: 선의 색상을 설정합니다.
  • linetype (lty): 선의 종류를 설정합니다. 예를 들어, 실선("solid"), 점선("dashed") 등이 있습니다.
  • alpha: 선의 투명도를 설정합니다.
  • group: 그룹을 지정하여 여러 개의 선을 그릴 때 사용합니다.
  • inherit.aes: 상위 미적 매핑을 사용할지 여부를 설정합니다.

<r />
qplot(x, y, main = "title", xlab="x axis", ylab="y axis", geom="blank") + geom_hline(yintercept = c(0,2), lty=3) + geom_vline(xintercept = c(1,2)) + geom_segment(mapping=aes(x=1,y=1,xend=5,yend=1),color="orange")

geom_hline, geom_vline은 각각 가로선과 세로선을 그립니다. (참고로 geom_abline으로 대체가능)

  • xintercept: 가로선의 y축 위치를 지정합니다. (geom_hline)
  • yintercept: 세로선의 x축 위치를 지정합니다. (geom_vline)

geom_segment두 점을 연결하는 선(segment)을 추가합니다.

  • x, y: 시작점의 x, y 좌표를 지정합니다.
  • xend, yend: 끝점의 x, y 좌표를 지정합니다.

6. aes

aes "Aesthetic Mapping(미적 매핑)"의 약자로, 데이터의 변수에 그래프의 시각 속성값을 매핑할 때 사용됩니다.

바로 예제를 통해 알아보겠습니다.

<r />
x <- 1:10 y <- c(-1,2,5,-2,-3,0,6.2,1.5,-3.4,-8.1) # 카테고리 나누기 ptype <- rep(NA,length(x=x)) ptype[y>0] <- "over_0" ptype[y<0] <- "less_0" ptype[y==0] <- "0" ptype <- factor(x=ptype) ptype # plot qplot(x,y, color=ptype, shape=ptype) + geom_line(mapping=aes(group=ptype))
  • ptype : y 데이터의 카테고리(factor) 변수
  • ptype의 level에 따라 color, shape, line을 매핑하였습니다.

 

반응형
profile

Idealim

@Idealim

읽어주셔서 감사합니다. 잘못된 내용이 있으면 언제든 댓글로 피드백 부탁드립니다.