이번 포스팅에서는 R을 사용하여 쿨해 보이는 그래프를 그리는 방법을 알아보도록 하겠다. 사실 R에는 다양하고 편리한 그래프 팩키지들이 있어서 팩키지를 다운 받은 후 사용하면 되지만, 그 이전에 기본 명령어를 사용하여 플랏(Plot)을 그리는 원리를 이해한다면 나중에 그래프 팩키지를 사용할 때 훨씬 이해가 쉽다.
R의 그래프 명령어를 공부하는데에 가장 쉬운 예제는 우리가 익히 알고 있는 히스토그램(R통계 팩키지임에도 불구하고)도 bar차트도 아닌 단순한 x-y 그래프이다. x-y 그래프를 완벽히 숙지하고 있다면 다른 어떤 그래프도 손쉽게 만들어 낼 수 있을 것이라고 필자는 생각한다.
자, 각설하고 그래프 그리기를 시작하자. 우리가 수학시간에 배웠던 \(y=x^2\)를 그리고 싶다고 생각하자. 그렇다면 제일 먼저 할 일은 x벡터와 y벡터를 생성하는 일 일것이다. x 벡터를 생성한 후 이를 바탕으로 y 벡터를 생성하자.
x <- seq(-10, 10, length.out = 100) y <- x^2
위의 명령어는 -10에서 10까지 100개의 같은 간격을 가진 수열을 생성하고, 이를 이용하여 x 벡터 각 원소의 제곱된 값을 원소로 가지는 y벡터를 생성한다. 이 두 벡터를 가지고 그래프를 그리기 위하여 R에 다음의 명령어를 입력하도록 하자.
plot(x,y)
단지 명령어 하나만 입력했지만 그럴싸한 그래프가 나왔다. 하지만 우리의 목표는 쿨~해보이는 그래프를 그리는 것이므로 주어진 그래프를 좀더 다듬어 보도록 하자.
먼저, 우리는 \(y=x^2\)의 그래프를 그리고 싶은 것이므로, 점으로 이루어진 그래프를 실선으로 바꿔주고, 색깔 역시 식상하므로 칙칙한 검정색이 아닌 쿨톤 파랑으로 선택하자.
plot(x,y, type = 'l', col = "Blue")
두번째 단계는 우리가 가지고 있는 데이터가 -10부터 10까지를 가지고 있지만, 사실 전체 그래프가 아닌 특정값 근처를 보고싶을때가 있으므로 x축과 y축의 보여지는 범위를 조정하는 옵션을 추가하자. 나중에 이 부분을 수정한다면 손쉽게 그래프가 보여주는 범위를 조정할 수 있을 것이다. 다음의 R코드는 x축을 -2에서 2까지 보여지도록하고 제곱 그래프이므로 y축도 0에서 4까지 보여지도록 조정하는 코드이다.
plot(x,y, xlim = c(-2,2), ylim = c(0,4), type = 'l', col = "Blue")
생각해보니, 쿨한 그래프인데 x축과 y축이 빠져있다. 이것은 쿨하지 못하므로 다음과 같이 추가해주자.
plot(x,y, xlim = c(-2,2), ylim = c(0,4), type = 'l', col = "Blue") abline( v = 0, lty = 1) abline( h = 0, lty = 1)
abline 커맨드는 이미 생성된 플락(plot)에 여러 직선을 추가 할 수 있도록 해주는 명령어이다. 예전에 공부했던 ?abline 명령어를 이용하여 살펴보면 다음과 같은 문법을 가지고 있다는 것을 알 수 있다.
abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL, coef = NULL, untf = FALSE, ...)
몇 가지만 공부하고 넘어가면, abline 함수의 a와 b 요소는 절편과 기울기를 사용하여 직선을 표현하고 싶은 경우 이용할 수 있고, h와 v의 경우는 가로세로 직선을 추가할 때 편하게 사용할 수 있다. 따라서 위에 사용된 abline( v = 0, lty = 1) 명령어의 경우 세로 직선을 가로축의 0 위치에 그려라라는 뜻으로 y축을 그리는데에 사용되었다. 마찬가지로 abline( h = 0, lty = 1) 명령어의 경우는 가로로 된 직선을 세로축의 0위치에 그려라라는 의미로 x축을 그리는데에 사용되었다.
이 명령어를 이해했다면, 우리의 그래프를 다음과 같은 쿨~내음이 진동하는 그래프로 탈바꿈 시킬 수 있게 된다.
plot(x,y, xlim = c(-2,2), ylim = c(0,4), type = 'l', col = "Blue") abline(h = 0:4, v = -2:2, col = "Gray", lty=3) abline( v = 0, lty = 1) abline( h = 0, lty = 1)
여기서 주의할 점은 회색 점선을 먼저 그리고 x축과 y축을 그렸다는 점인데, 이 순서가 바뀌면 회색 선에 x,y축이 가려져서 안보이게 된다. 마지막으로 열 개의 회색 점선이 abline(h = 0:4, v = -2:2, col = “Gray”, lty=3) 명령어 한 줄로 추가되었다는 점인데, R이 벡터기반 프로그래밍 언어라는 속성을 잘 보여주는 명령어라는 생각이 든다. 이 내용에 대해서는 앞선 세 벡터에 관한 강의를 이해하고 있다면 충분히 이해할 것이라고 생각하고, 다음 이어지는 강의에서는 우리가 만든 그래프를 좀 더 쿨하게 만드는 방법에 대하여 알아보자.
'R > R시각화' 카테고리의 다른 글
r4issactoast을 이용한 XY-plot 쉽게 그리기 (0) | 2023.06.10 |
---|---|
R을 사용한 논문용 그래프 - 4강. 여러 그래프를 한번에 그리기 mfrow() (0) | 2023.06.10 |
R을 사용한 논문용 그래프 - 3강. 범례 넣기와 그래프 겹쳐 그리기 (0) | 2023.06.10 |
R을 사용한 논문용 그래프 - 2강. 배경색 지정 및 수학 기호로 제목 달기 (0) | 2023.06.10 |
ggplot 산점도 완전 정복 (0) | 2021.01.06 |
댓글