SW/R

R : 다중 상자 그림-boxplot (개념 및 예제)

얇은생각 2019. 2. 24. 12:30
반응형

다중 상자그림(Boxplot)

다중 상자 그림은 예전에도 다른 개념을 포스팅하면서 소개한 적이 다중 상자그림(box plot)은 일변량 연속형 자료를 상자와 선, 그리고 점으로 표현한 그림입니다. 총 자료가 여러개의 자료 묶음으로 구성되어 있습니다. 묶음 간 비교에 있어 시각적 효과가 탁원한 장점이 있습니다. 아래 그림을 참조하세요.


상자그림



boxplot을 이용하기 위해 설치가 필요한 패키지는 없습니다. 따라서 R에서 바로 사용할 수 있습니다.  이번 실습 시간에는 2017년 서울의 각 하루의 평균 기온에 대한 데이터로 실습을 진행합니다. 



예제 실습


ds <- read.csv("seoul_temp_2017.csv") # 데이터 읽어오기
head(ds) # 데이터 헤더 출력
# date month avg_temp
# 1 2017-01-01 1 2.7
# 2 2017-01-02 1 5.0
# 3 2017-01-03 1 2.0
# 4 2017-01-04 1 3.9
# 5 2017-01-05 1 3.8
# 6 2017-01-06 1 5.4
summary(ds$avg_temp) # 데이터 셋 요약 보기
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# -9.40 3.00 15.10 13.07 22.60 31.40
# 서울 1년 기온 분포
boxplot(ds$avg_temp, # 서울 1년 기온 분포 입력
col="yellow", # 노란색 입력
ylim=c(-20,40), # 범위 입력
xlab="서울1년기온", # 축 제목
ylab="기온") # 축 제목


상자그림


연산할 데이터들을 입력하고 그 값의 범위를 정하였습니다. 그러면 그 범위에 맞게 다중 그림 상자가 표현됩니다.



실습 예제 2


month.avg <- aggregate(ds$avg_temp, # 평균기온 입력
by=list(ds$month),median)[2] # 월별로 묶어서
# 평균기온 순위 계산 (내림차순)
odr <- rank(-month.avg) # rank함수를 활용
# 월별 기온분포
boxplot(avg_temp~month, data=ds, # 기온과 월별로 입력
col=heat.colors(12)[odr], # 상자의 색을 지정
ylim=c(-20,40), # 기본 범위 지정
ylab="기온", # 축 제목 설정
xlab="", # 축 제목 설정
main="서울 월별기온분포 (2017)") # 메인 제목 설정


상자그림


boxplot을 월별로 표현하는 예제입니다. 각 box 의 색을 heat.colors 에서 12개의 색을 설정하여 표현합니다. 어떤 값을 설정할지는 위의 예제 코드처럼 odr에 따릅니다. 온도가 높을 수록 붉은색입니다. 반대로 낮을수록 연한 노랑색입니다. 비슷한 데이터셋을 활용해서 실습을 진행해보세요.

반응형