-
Data Visualization using R (R을 이용한 데이터 시각화)Programming/R Programming 2020. 6. 23. 00:06
title: "Data Visualization using R 13-1"
author: "Haeseong Oh"
date: '2020 6 22 '
output: html_document
Data Visualization(데이터 시각화)
메세지를 전달을 주 목적으로 하는 시각화 기법
데이터 시각화의 목적
- 분석 목적의 데이터 탐색(Exploratory data analysis, EDA) 및 데이터 분석 모델의 이해
- 분석 결과의 공유를 위한 보고서 작성의 시각화
- 정보 전달의 용이성과 미적인 측면이 고려됨.
데이터 시각화의 기능
-
커뮤니케이션
- 데이터에 있는 정보(메세지)를 쉽고 빠르게 전달하는 기능
- ex) Facebook의 소셜네트워크 그래프프
-
디스커버리 (Discovery)
- 새로운 사실 관계를 파악하기 위하여 정보를 표현하는 것.
- 데이터에 있는 정보(메세지)를 쉽고 빠르게 전달하는 기능
- ex) 미네소타 주의 보리 수확량 데이터
미네소타 주의 보리 수확량 데이터 분석
- 수율(yield): bushels/acre
- variety: 품종
- site: 실험장
- 부셸(bushel): 건량 단위, 약 35리터
- 에이커(acre): 4046.8m^2
- 트렐리스 디스플레이(trellis display)
- 여러 독립적인 그래프 패널을 한 화면에 표시하여 다변량 데이터 분석에 유용
- Morris 실험장에서만 1931년과 1932년의 수율이 다른패턴을 나타내는 것을 확인할 수 있음.
library(lattice) #lattice패키지에서 barley라는 DataSet을 제공한다. #?barley #Yield data from a Minnesota barley trial trellis.par.set(theme = col.whitebg()) #흰색백그라운드 색상을 테마로 사용. dotplot(variety ~ yield | site, data = barley, groups = year, key = simpleKey(levels(barley$year), space = 'bottom', columns = 2), xlab = "Barley Yield (bushels/acre) ", ylab = 'variety', aspect=0.5, layout = c(2,3), scales = list(alternation = FALSE, y = list(abbreviate = TRUE, minlength =5), font=4, col = "blue"), main = 'dotplot(varitey ~ yield | site, data = barley, groups = year)', sub = list("arguments = key, aspect, scales, etc", col = "gray") )
- 인사이트(insight)
- 정보가 숨겨져 있어 미처 파악 못한 시실이나 이미 알고 있는 사실 보다 좀 더 나은 통찰력을 얻을 수 있도록 정보를 표한하는 것.
- ex) anscombe 데이터
- 통계량 및 회귀 분석의 통게량이 유사하나 패턴의 차이가 존재하는 데이터
library(lattice) # cal_corr = c(cor(x1,y1), cor(x2,y2), cor(x3,y3), cor(x4,y4)) apply(anscombe, 2, mean) apply(anscombe,2, sd) # res[[1]] = lm(y1~x1) #lm(반응변수~설명변수) # res[[2]] = lm(y2~x2) # res[[3]] = lm(y3~x3) # res[[4]] = lm(y4~x4) summ = matrix(0,4,4) cname = paste(paste('x', 1:4, sep=''), paste('y', 1:4, sep=''), sep=' vs. ') colnames(summ) = cname rownames(summ) = c('estimated beta0', 'estamted beta1', 'estimagted error varience', 'R-square' ) # for(i in 1:4){ # temp = summary(res[[i]]) # summ[1:2, i] = temp[[4]][1:2,1] # summ[3,i] = temp[[6]] # summ[4,i] = temp[[8]] # } #pch : point of character. 색칠된 동그라미 #col : color #main : figure의 title #xlab : x의 lable #lwd : line width par(mfrow=c(2,2)) #multi figure by row for (i in 1:4){ plot(anscombe[,i], anscombe[,i+4], pch=16, col=2, #x, y, 색동그라미, 색 main=cname[i], xlab=paste('x', i, sep=''), ylab=paste('y',i,sep=''), xlim=c(4,20),ylim=c(3,13)) abline(summ[1:2, i], col=4, lwd=2) #일차함수 그래프 그리기 }
- x1 vs. y1 : 적합
- x2 vs. y2 : 설명변수 x를 변환을 해야 한다.
- x3 vs. y3 : 이상점을 확인할 필요가 있다.
- x4 vs. y4 : 부적합. x값이 다른 특이점을 살펴봐야 함.
R 그래픽스
- R의 중요한 기능 중의 하나로 다양한 시각화 도구를 제공
- R 그래픽스 아키텍처
- R에서의 시각화 기능을 위한 구조
- 고수준 그래픽 : plot, barplot, boxplot, pie, ggplot2, lattice, rgl, sna 등
- 저수준 그래픽 : points, lines, rect, polygon, text, title, legend, axis 등
- R 그래픽 장치 : windows, x11, jpeg, png, tiff, pdf svg 등
- 외부 애플리케이션 인터페이스 연동 : Google Earth와 R연동
- 외부 그래픽 장치 연동 : R에서 제공하는 기본적인 그래픽 장치에서 제공하지 않는 시각화 구현을 위해서 외부 그래픽 장치를 접목하는 방법
- ex) 3차원 렌더링이 가능한 OpenGL을 이용하여 구현된 rgl 패키지
- R에서의 시각화 기능을 위한 구조
일반적인 그래픽 작업 순서
- 그래프장치
- 고수준 그래픽
- 저수준 그래픽
- 저장
-
SVG(Scalable Vector Graphics) 그래픽 파일 장치
-
2차원 벡더 그래픽을 표현하기 위한 xml 기반의 파일 형식
-
벡터 그래픽이므로 확대해도 계단현상(깨짐)이 발생하지 않으나 해당 포맷과 호환되는 브라우저가 많지 않다.
-
gglpot 패캐지로 대부분 그래프 커버 가능
-
lattice 패키지
- 다변량 데이터의 시각화에 유용하게 사용가능
-
ggplot2 패키지
- 그래픽 문법적인 요소를 가미하여 그래프와 사용자간에 어느정도 상호작용을 제공하는 시각화 도구
- 시각화 과정에서의 코드 재사용성이 뛰어나며 데이터 분석을 위한 시각화에 적합
-
ggmap 패키지
- GIS 데이터를 지도 위에 표현하는 주제도를 위한 ggplot2 기반의 시각화 도구
- R 기반의 지리 시각화 도구는 Google Maps 등과 같은 지도 정보를 가져와 표현한다.
'Programming > R Programming' 카테고리의 다른 글
R Graphics - Color 설정 (0) 2020.06.23 R 텍스트 마이닝 라이브러리 KoNLP 패키지 설치 (0) 2020.06.21 R foreign 패키지 설치하기. (0) 2020.06.21