본문 바로가기
R/R시각화

r4issactoast을 이용한 XY-plot 쉽게 그리기

by 슬통이 2023. 6. 10.
반응형

필자가 통계를 주로 설명하는 블로그를 운영하고 있다보니, 그래프를 그릴 일이 많다. 아무래도 시각적인 것이 글로 써져있는 것보다 훨씬 잘 눈에 들어오기 때문일 것이다. 그 중에서도 가장 많이 사용되는 것을 꼽으라면 단연 XY plot이다. 매번 XYplot을 그리는 입장에서 코드 쓰는게 여간 귀찮은게 아니었다. 따라서 좀 더 빨리 XY plot을 그리고 싶은 마음이 있었는데, 마침 예전에 필자가 기본 패키지를 사용하여 예쁜 XY 그래프를 그리는 것을 연재한 것이 생각나, 이번에 시간을 내어 그 때 사용했던 코드를 r4issactoast에 넣어놓았다.

r4issactoast 패키지를 통한 XY-plot 빠르게 그리기

# remotes::install_github("issactoast/r4issactoast")
library(r4issactoast)

현재 필자가 설정해놓은 함수는 다음과 같은 4가지이다.

  • emptyPlot
  • add_line
  • add_points
  • add_fcn

위의 4개의 함수의 사용법을 설명하도록 하겠다.

emptyPlot

emptyPlot의 경우 두 개의 입력값을 사용한다. xrange와 yrange이다. 각각은 왼쪽과 오른쪽, 아래쪽와 위쪽의 값을 명시하는 벡터형식으로 넘겨준다.

emptyPlot(xrange = c(-3, 3), yrange = c(0, 3))

위의 그래프는 기본 패키지를 이용해서 그린것이므로 제목과 x, y축의 레이블을 달려면 title함수를 이용하면 된다.

title(main = "Test title",
      xlab = "x values",
      ylab = "y values")

add_line, add_points

x와 이에 대응하는 y 벡터가 있을 경우, 다음과 같이 선과 점을 추가할 수 있다.

x <- seq(-3, 3, by = 0.1)
y <- x^2
y2 <- sin(x) + 1
add_line(x, y, col = "red")
add_points(x, y2, col = "blue")

add_fcn

만약 자신이 정의한 함수가 있다면 다음과 같이 넣을 수 있다. 현재 add_fcn함수는 양 끝점을 기준으로 100개의 포인트를 발생시켜 line 그래프를 그리도록 설정되어 있다.

g <- function(x){sin(x) + 0.1 * x^2}
add_fcn(g, col = "purple")
add_fcn(dnorm, col = "green")

소스코드 및 응용

독자들은 필자가 사용한 코드를 응용하여 자신만의 테마를 만들어 자신의 패키지에 넣어 사용할 수 있을 것이라 생각한다. 필자의 github의 r4issactoast패키지R폴더에 graphic.R 파일에 코드를 업데이트 해놓았다.

 

Reference

r4issactoast 패키지: https://github.com/issactoast/r4issactoast

반응형

댓글