[ R ] 다양한 시각화 #1 히스토그램 밀도ㆍ막대 그래프
패키지가 다르면 함수명도 다르게 하는경우도 있고 같은 경우도 있다.
R의 고급 시각화 도구
주요 패키지: graphics, lattice, ggplot2, ggmap graphics패키지는 일반적인 시각화 도구 제공.
barplot(), dotchart(), pie(), boxplot(), hist(), plot()함수
고급 시각화 lattice 패키지: 서로 상관있는 확률적 반응변수의 시각화에 사용. 특정 변수가 갖는 범주(domain)별로 독립된 패널을 격자(lattice)처럼 배치하여 여러 개의 변수에 대한 범주를 세부적으로 시각화해주는 도구
ggplot2 패키지: 기하학적 객체들(점, 선, 막대 등)에 미적 특성(색상, 모양, 크기)을 적용하여 시각화는 방법을 제공. 그래프와 사용자 간의 상호작용(interaction)기능을 제공하기 때문에 시각화 과정에서 코드의 재사용성이 뛰어나고, 데이터 분석을 위한 시각화에 적합
ggmap: 지도를 기반으로 위치, 영역, 시간과 공간에 따른 차이와 변화에 대한 것을 다루는 공간시각화에 적합
격자형 기법 시각화
격자 형태의 그래픽(trellis graphic)을 생성하여 시각화하는 기법.
한번에 여러 개의 차트 생성이 가능하고, 높은 밀도의 차트를 효과적으로 그려주는 이점
lattice 패키지의 주요 함수
histogram(): 연속형 변수 대상 히스토그램, cf. hist()
densityplot(): 연속형 변수 대상 밀도 그래프
barchart(): 막대그래프, cf. barplot()
dotplot(): 점그래프, cf. dotchart()
xyplot(): 교차그래프, cf. plot()
equal.count(): 데이터 셋을 지정한 영역만큼 범주화
coplot(): 조건변수 조작으로 조건그래프
cloud(): 3차원 산점도 그래프
# lattice 패키지 사용 준비
#1 lattice 패키지 설치
install.packages("lattice") library(lattice) |
#2 실습용 데이터 가져오기
install.packages("mlmRev") library(mlmRev) data("Chem97") str(Chem97) head(Chem97,6) Chem97 |
(1) 히스토그램
# histogram() 함수를 이용하여 데이터 시각화
#1
histogram(~gcsescore,data=Chem97)![]() |
#2 score 변수를 조건변수로 지정하여 데이터 시각화 하기
histogram(~gcsescore|score,data=Chem97)![]() histogram(~gcsescore|factor(score),data = Chem97) ![]() |
조건 변수를 factor(score)
(2) 밀도 그래프
밀도 그래프를 그리기 위한 densityplot()함수 이용
densityplot(~x축 컬럼 | 조건, data, group=변수)
# densityplot()함수를 사용하여 밀도 그래프 그리기
#1 plot.Points = T, auto.key = T
densityplot(~gcsescore|factor(score),data = Chem97, groups = gender, plot.Points = T, auto.key = T) ![]() |
#2 plot.Points = F, auto.key = F
densityplot(~gcsescore|factor(score),data = Chem97, groups = gender, plot.Points = F, auto.key = F) ![]() |
plot.points = T: 밀도 점 표시 여부
밀도 점을 표시하지 않는 경우 : plotpoints = F
auto.key = T: 범례 표시 여부(범례는 그래프 상단에 표시)
(3) 막대 그래프
barchart()함수
barchart(y축 컬럼 ~ x축 컬럼 | 조건, data, layout)
# barchart() 함수를 사용하여 막대 그래프 그리기
#1 기본 데이터 셋 가져오기 ( VADeaths 이용 )
data("VADeaths") VADeaths |
#2 VAdeaths 데이터 셋 구조보기
str(VADeaths) class(VADeaths) # "matrix" mode(VADeaths) |
#3 데이터 형식 변경 (matrix형식을 table 형식으로 변경)
as.data.frame.table(): 넓은 형식의 데이터를 긴 형식으로 변경
dft <- as.data.frame.table(VADeaths) str(dft) head(dft) # Var1 Var2 Freq # 1 50-54 Rural Male 11.7 # 2 55-59 Rural Male 18.1 # 3 60-64 Rural Male 26.9 # 4 65-69 Rural Male 41.0 # 5 70-74 Rural Male 66.0 # 6 50-54 Rural Female 8.7 |
통계처리를 위하여 matrix 자료구조를 table 자료구조로 변환 table구조로 변경하면 가장 왼쪽의 첫번째 컬럼을 기준으로 ‘넓은 형식’의 자료가 ‘긴 형식’의 자료로 구조가 변경된다.
#4 막대 그래프 그리기
barchart(Var1~Freq|Var2, data=dft,layout = c(4,1)) # 4개의 패널을 한줄에 표시![]() |
#5 origin 속성을 사용하여 막대 그래프 그리기
barchart(Var1~Freq|Var2,data=dft,layout=c(4,1),origin=0)![]() |
“origin = 0” : x축의 구간을 0부터 표시해주는 역할