Lab 5-2 built-in 시각화 함수 강의 - 빅데이터 분석 기술

어제 진행한 built-in 함수를 이용한 시각화 방법에 대해서 다시 살펴보겠습니다.

plot 함수를 이용해 1차원 데이터 (벡터), 2차원 데이터 (행렬) 그리고 데이터프레임의 시각화 방법을 실습합니다.

벡터 x를 만들고 시각화 해보겠습니다.  

x<-c(-30:30)
plot(x) 

간단하지요? 그럼 아래와 같은 그림이 출력됩니다.

두번째로 scatter plot을 하기 위해 x값을 이용해 y 값을 만들어보겠습니다. 

y <- 3*x + 2 + rnorm(length(x), mean=0, sd=20)

뒤에 rnorm은 랜덤값을 생성하는데 그 값들이 정규분포를 따르도록 하는 함수 입니다. rnorm(갯수, 평균, 표준편차) 라고 생각하시면 됩니다.
그리고 plot을 하면 아래와 같은 그림이 출력됩니다.

plot(x,y)


그리고 iris 데이터 프레임을 출력하면 아래와 같은 그림을 출력합니다.

plot(iris)


이제 plot의 arguments를 넣어서 그림을 꾸며 보겠습니다. 예제를 통해 설명할께요.

plot(x,y, main='Main title', sub='sub title', xlab='index',  ylab='values', col='red', pch=2)
lines(lowess(x,y), col='skyblue') #Smoothing


여기서 main은 주제목을, sub는 부제목을 나타냅니다. 또한 lab로 끝나는 것은 label을 나타냅니다. 그리고 col은 색을 pch는 점의 모양을 나타냅니다. plot 뒤에 lines가 있는데 이것은 선을 추가하기 위한 것이고 lowess 함수는 fitting line을 찾는 함수라고 보시면 됩니다. 점이나 선의 모양과 두께는 아래 그림을 참고하세요.

선을 추가하는 것을 해보았는데 이처럼 plot을 한 뒤에 그림을 편집할 수 있습니다. 선이나 점을 추가하거나, 제목을 나중에 쓸 수도 있습니다. 예제를 한번 수행해보겠습니다. 

attach(cars)
plot(cars, type='n', xlab='Speed [mph]', ylab='Distance [ft]') 
points(speed[speed<15], dist[speed<15], pch='s', col='blue')
points(speed[speed>=15], dist[speed>=15], pch='f', col='green')
lines(lowess(cars), col='red') 
legend(5,120, pch=c('s','f'), col=c('blue', 'green'), 
       legend=c('Slow','Fast')) 
title('Breaking distance of old cars') 

여기서 points는 점을 추가, lines는 선을 추가, legend는 점을 설명하기 위한 레전드이며, title은 주제목을 추가합니다. 중요한 부분은 plot을 한 뒤에 나머지 editing을 한다는 것이죠!! 그림 편집을 위한 함수는 아래 그림을 참고 하세요.

이제 plot외의 built-in 시각화 함수를 알아보겠습니다. 아래 예제는 box plot, histogram, bar plot, pie chart 를 한 화면에서 나타내는 함수입니다. 여기서 파이 차트의 집계 부분을 위해 dplyr 패키지를 사용하겠습니다. 

library(dplyr)
par(mfrow=c(2,2))
#Boxplot
boxplot(iris)
#Histogram
hist(iris$Sepal.Length)
#Barplot 
barplot(iris$Petal.Width)
#Pie chart
iris_avg<-iris %>% group_by(Species) %>% 
  summarise(avg=mean(Sepal.Length))
pie(iris_avg$avg)


par함수는 시각화의 파라미터를 나타냅니다. mfrow는 화면을 분할 하는 것인데 c(2,2)는 2x2로 분할 하라는 뜻의 명시입니다. 시각화를 위한 함수는 boxplot(), hist(), barplot(), pie() 함수입니다. 필요한 곳에 요긴하게 사용하면 좋겠죠??
 
다음 실습에서는 ggplot2 패키지를 이용한 시각화 방법을 학습하겠습니다. 


덧글

댓글 입력 영역

와이드 애드센스



애드센스 사이드 광고