막대그래프를 작성하기 위한 기초 작업 (데이터 정리하기)

# 막대그래프를 작성하기 위한 기초 작업
favorite <- c('WINTER', 'SUMMER', 'SPRING', 'SUMMER', 'SUMMER', 
			'FALL', 'FALL', 'SUMMER', 'SPRING', 'SPRING')
table(favorite)

# table() 함수
# 벡터에 저장된 범주형 데이터에 대해 데이터 값이 종류별로 몇 개인지 계산하는 함수이다.

 

 

 

막대 그래프 작성하기

ds <- table(favorite)
barplot(ds, main='favorite season')

 

 

 

막대그래프의 색 지정하기

barplot(ds, main='favorite season', col='orange')

 

 

 

막대별로 다른 색상 지정하기

barplot(ds, main='favorite season', col=rainbow(4))
barplot(ds, main='favorite season', col=heat.colors(4))
barplot(ds, main='favorite season', col=terrain.colors(4))
barplot(ds, main='favorite season', col=topo.colors(4))
barplot(ds, main='favorite season', col=cm.colors(4))

 

 

 

x축, y축에 설명 붙이기

barplot(ds, main='favorite season', col=cm.colors(4), xlab='계절', ylab='빈도 수')

 

 

 

그래프 막대를 수평 방향으로 출력하기

barplot(ds, main='favorite season', col=cm.colors(4), horiz=TRUE)

# 수평 방향 horiz=TRUE
# 수직 방향 horiz=FALSE

 

 

 

x축 그룹의 이름 바꾸기

# x축 그룹의 이름 바꾸기 (기본)
barplot(ds, main='favorite season', col=cm.colors(4), names=c('FA', 'SP', 'SU', 'WI'))

# x축 그룹의 이름을 수직 방향으로 출력하기
barplot(ds, main='favorite season', col=cm.colors(4), las=2)

las 값 설명
0 축 방향 (기본값)
1 수평 방향 (축 방향과 상관 없음)
2 축을 기준으로 수직 방향
3 수직 방향 (축 방향과 상관 없음)

 

 

 

중첩 그룹의 막대 그래프

그룹 안에 또 다른 그룹이 존재하는 경우이다. 아래 경우에서는 연도 내부에 나이가 존재한다.

# 데이터 입력
age.A <- c(13709, 10974, 7979, 5000, 4250)
age.B <- c(17540, 29701, 36209, 33947, 24487)
age.C <- c(991, 2195, 5366, 12980, 19007)

ds <- rbind(age.A, age.B, age.C)
ds
colnames(ds) <- c('1970', '1990', '2010', '2030', '2050')
ds

# 그래프 작성
barplot(ds, main='인구 추정')
barplot(ds, main='인구 추정', col=rainbow(3))
barplot(ds, main='인구 추정', col=rainbow(3), beside=TRUE)
barplot(ds, main='인구 추정', col=rainbow(3), beside=TRUE, legend.text=T)
barplot(ds, main='인구 추정', col=rainbow(3), beside=TRUE, legend.text=T, 
		args.legend=list(x='topright', bty='n', inset=c(-0.25, 0)))
par(mflow=c(1, 1), mar=c(5,5,5,7))
barplot(ds, main='인구 추정', col=rainbow(3), beside=TRUE, 
		legend.text=c('0~14세', '15~64세', '65세 이상'))

옵션 기능
beside 기본값은 FALSE, TRUE로 지정하면 막대를 각각 표시한다.
legend.text 범례에 표시할 내용을 지정한다.
args.legend 여러 개의 사항을 list() 함수로 묶어서 지정할 수 있게 한다.
x='topright' 범례를 출력할 위치를 지정한다.
bty='n' 'o' 는 테두리선을 표시하고, 'n' 은 테두리선을 표시하지 않는다.
inset=c(-0.25,0) 범례를 x축과 y축 방향으로 얼마나 이동시킬지를 지정한다. -1~1 사이의 값을 지정한다. (%를 의미한다.)
par() 그래프를 표시할 창에 대해 설정하는 역할을 한다.
mfrow=c(1, 1) 그래프를 출력할 창을 어떻게 분할할지를 지정하는데, 여기서 c(1, 1)은 창을 분할하지 않음을 의미한다.
mar=c(5,5,5,7) margin 지정. c(bottom, left, top, right) 순서이다.

 

+ Recent posts