R에서 기본으로 제공하는 함수인 plot()은 그 기능이 매우 막강하여 산점도뿐만 아니라 수많은 종류의 그래프를 그릴 수 있게 해 준다. plot()이 할 수 있는 범주는 매우 막대하므로, 우선 산점도에 대한 내용만 다루기로 한다. 산점도만 다룬다고 쳐도, 이번 포스팅 한 번으로 끝날 것 같지 않아 몇 차례에 나눠 소개하고자 한다.
목차
1. 산점도 그리기 plot() (1)
1) plot()의 기본 원리 - 점 찍기
2) 제목과 부제목
1) plot()의 기본 원리 - 점찍기
plot()에 점의 좌표를 입력하면 좌표평면에 점을 찍어준다. 예를 들어 (3,2)에 점을 찍고 싶다면 다음 코드를 실행하면 된다.
plot(3,2)
만약 여러 개의 점을 찍고 싶다면 어떻게 해야 할까? plot() 함수의 첫 번째 argument는 x좌표, 두 번째 argument는 y좌표다. 다음과 같이 4개의 점을 찍으려는 상황을 상정해보자.
x | y |
1 | 2 |
4 | 3 |
2 | 6 |
6 | 2 |
x좌표를 하나의 벡터로 모아 c(1,4,2,6)을 plot()의 첫 번째 자리에, y좌표를 하나의 벡터로 모아 c(2,3,6,2)를 plot()의 두 번째 자리에 넣으면 된다.
plot(c(1,4,2,6),c(2,3,6,2))
혹은 c(1,4,2,6)을 x라는 객체에 저장하고, c(2,3,6,2)를 y라는 객체에 저장하여 x와 y로 plot() 함수를 구동할 수도 있다. 그러면 각 축의 이름이 달라지는 것을 볼 수 있다. 이 plot(x,y)를 이번 포스팅 내내 쭉 사용할 것이다.
x<-c(1,4,2,6)
y<-c(2,3,6,2)
plot(x,y)
혹은 이런 데이터 프레임이 df로서 주어졌다면 df의 x와 y를 불러와 그릴 수도 있다.
x | y |
1 | 2 |
4 | 3 |
2 | 6 |
6 | 2 |
x와 y를 열로서 합쳐(cbind) 데이터프레임 df를 만들고(data.frame), 이로 산점도를 그리면 다음과 같다.
x<-c(1,4,2,6)
y<-c(2,3,6,2)
df<-data.frame(cbind(x,y))
plot(df$x,df$y)
2) 제목과 부제목
(1) 제목과 부제목 달기
위 그래프에는 제목과 부제목이 없어 무엇을 나타내는 것인지 알 수가 없다. 이 그래프가 2022년 1월부터 6월까지 환자 A의 알코올 중독 점수 (AUDIT)을 나타낸 것이라면 제목을 "AUDIT Trend", 부제목을 "2022, JAN-JUN"라고 달고 싶을 것이다. 그럴 때에는 "main"과 "sub" argument를 이용하면 된다.
plot(x,y,main="AUDIT Trend", sub="2022, JAN-JUN")
(2) 제목과 부제목 색깔 바꾸기
제목과 부제목의 색을 바꾸기 위해서는 어떤 색을 선택할 수 있는지 알아야 한다. 수많은 색을 선택할 수 있지만 R에서 기본으로 제공하고 있는 색은 657개며, 웬만한 경우 이 정도면 충분할 듯하다. 657개의 색을 확인하는 방법은 다음과 같다.
colors()
[1] "white" "aliceblue" "antiquewhite"
[4] "antiquewhite1" "antiquewhite2" "antiquewhite3"
[7] "antiquewhite4" "aquamarine" "aquamarine1"
[10] "aquamarine2" "aquamarine3" "aquamarine4"
[13] "azure" "azure1" "azure2"
[16] "azure3" "azure4" "beige"
[19] "bisque" "bisque1" "bisque2"
[22] "bisque3" "bisque4" "black"
...
이중에 "blue", "orange"를 각각 제목과 부제목의 색으로 하고자 한다. 이때에는 각각 col.main, col.sub이라는 argument를 사용하면 된다.
plot(x,y,main="AUDIT Trend", sub="2022, JAN-JUN", col.main="blue", col.sub="orange")
(3) 제목과 부제목의 크기 바꾸기
제목의 크기는 키우고, 부제목의 크기는 줄이고 싶다면, 각각 cex.main, cex.sub argument를 사용하면 된다.
plot(x,y,
main="AUDIT Trend", sub="2022, JAN-JUN",
col.main="blue", col.sub="orange",
cex.main=1.5, cex.sub=0.5)
cex.main의 default값은 1.2, cex.sub의 default값은 1이다. 키우면 글자의 크기도 커지고, 줄이면 글자도 작아진다.
[R] [plot() 함수] 산점도 그리기 (1) 정복 완료!
작성일: 2022.12.07.
최종 수정일: 2022.12.07.
이용 프로그램: R 4.2.2
RStudio v2022.07.2
RStudio 2022.07.2+576 "Spotted Wakerobin" Release
운영체제: Windows 10, Mac OS 12.6.1
'[R] 그래프 작성' 카테고리의 다른 글
[R] [plot() 함수] 추세선 그리기 - plot(), abline() (0) | 2022.12.22 |
---|