류동균의 R 공부방입니다.
R 시각화 기초 plot 본문
R의 기본적인 시각화 도구인 plot에 대해서 알아보려고 한다,
ggplot2 등 더 좋은 여러 시각화 패키지들이 존재하지만 가장 기초가 되고 접근이 쉬운 plot로 먼저 트레이닝을 해보려한다.
plot을 알아보기위해 R에 기본적으로 있는 iris 데이터를 사용하여 트레이닝을 시작해보자.
plot(iris$Sepal.Length)
iris의 Sepal.Length로 plot을 만들었을때 기본적으로 값을 나타내는 점들이 가운대가 뚤려있는것을 알 수 있다.
이 점들을 안이 채워져있는 형태로 바꾸어보자
plot(iris$Sepal.Length, pch = 20)
pch라는 옵션을 사용하여 안이 채워진 형태의 점으로 시각화 하였다. pch의 옵션에는 여러가지가 있다.
점이 아니라 세모, 네모 등 여러가지 모형으로 값들을 나타낼 수 있다. 자세한것은 구글에 plot pch in r을 검색해보면 된다.
이번엔 점의 크기를 조정해보자
plot(iris$Sepal.Length, pch = 20, cex = 0.5)
cex라는 옵션을 사용하면 점의 크기를 변경할 수 있다. 기본값은 cex = 1 로 되어있다.
데이터의 종류에 따라 점, 선 등 여러가지 적합한 방법으로 시각화를 해야 보기에 좋다.
이번엔 점이아닌 선으로 시각화 해보자. type이란 옵션을 사용하여 점이아닌 선으로 표현할 수 있다.
여러가지 표현을 알고싶다면 역시 구글에 plot type in r을 검색 하면 된다.
plot(iris$Sepal.Length, pch = 20, cex = 0.5, type = "l")
이번엔 축의 제목을 바꿔보자 x축, y축 각각 xlab, ylab 이라는 옵션을 사용해 주면 된다.
plot(data1, pch=20, cex=0.5, type="l", xlab = "X", ylab = "y")
이번엔 그래프의 제목을 넣어주자 main옵션을 사용하면 된다.
plot(iris$Sepal.Length, pch = 20, cex = 0.5, type = "l", xlab = "x", ylab = "y", main = "Rplot")
그래프에 가로선, 세로선을 추가해보자.
abline이라는 함수를 사용하면되는데 가로선은 h옵션 세로선은 v옵션을 사용하면 된다.
선의 색깔은 col이라는 옵션을 사용한다.
abline(h = 5, col = "red")
abline(v = 50, col = "blue")
이번엔 그래프에 1차식을 나타내는 선을 만들어보자
abline함수에서 옵션 a는 y절편을 b는 기울기를 나타낸다.
lty옵션은 선의 유형을 바꾸는 것인데 lty =2 로 하면 점선의 형태로 나타난다.
abline(a= 4.5, b = 0.02, col = "red", lty = 2)
임의로 정한 선이아닌 회귀식을 사용하여 선을 만들어보자.
iris데이터의 Petal.Length를 종속변수로 Petal.Width를 독립변수로 정하여 만들어보자.
plot(iris$Petal.Width,iris$Petal.Length, pch=20, cex=0.5, type="p", xlab="X ", ylab="y ", main="Rplot")
abline(lm(iris$Petal.Length ~ iris$Petal.Width), col="red")
이번엔 여러가지 그래프를 한 화면에서 나타내보자 par함수의 mfrow 옵션을 사용하여 그래프를 1행 4열로 표현해보자.
par함수에 대해 자세한건 구글에 par in r을 검색해보면 더욱 상세하게 알 수 있다.
par(mfrow=c(1,4))
plot(iris$Sepal.Length, pch=20, cex=1, type="p", xlab="X ", ylab="y ", main="Sepal.Length")
plot(iris$Sepal.Width, pch=20, cex=1, type="p", xlab="X ", ylab="y ", main="Sepal.Width")
plot(iris$Petal.Length, pch=20, cex=1, type="p", xlab="X ", ylab="y ", main="Petal.Length")
plot(iris$Petal.Width, pch=20, cex=1, type="p", xlab="X ", ylab="y ", main="Petal.Width")
두가지 그래프를 겹쳐서 보고싶다. par의 new옵션을 TRUE로 해주면 된다.
plot(iris$Sepal.Length, pch=20, cex=1, type="p", xlab="X ", ylab="y ", main="Sepal.Length", col = "red")
par(new=TRUE)
plot(iris$Petal.Length, pch=20, cex=1, type="p", xlab="X ", ylab="y ", main="Petal.Length", col = "blue")
2개의 그래프를 한번에 표현하다보니 제목과 y축이 겹쳐서 이상하게 보인다.
plot함수의 ylim 옵션을 사용하여 y축의 최댓값을 1~8까지 제한해보자.
plot(iris$Sepal.Length, pch=20, cex=1, type="p",xlab="X ", ylab="y ", col = "red", ylim=c(1,8))
par(new=TRUE)
plot(iris$Petal.Length, pch=20, cex=1, type="p",xlab="X ", ylab="y ", col = "blue", ylim=c(1,8))
간단하게 plot에 대해 알아보았는데 이제 기초를 다졌으니 다음에는 ggplot2를 통한 심화된 시각화에 대해서 알아볼 예정이다.
참고 : 미완성의 신
'ETC' 카테고리의 다른 글
R을 통한 시스템 자동화 기초 (0) | 2019.10.15 |
---|---|
R 코드로 크롤링을 통한 파일 다운받기 (0) | 2019.10.14 |
프로젝트 관리 툴 트렐로(Trello) (0) | 2019.10.14 |
업무 협업 툴 슬랙(Slack) (0) | 2019.10.14 |
Rstudy 첫번째 글 (0) | 2019.07.31 |