본문 바로가기
R 주제/R 기초 및 통계 강의

[R 강의] 88. 히스토그램 여러 개 겹쳐서 그리는 방법

by 만다린망고 2020. 5. 19.
반응형

도구 R로 푸는 통계

88. 히스토그램 여러 개 겹쳐서 그리는 방법


 

히스토그램 2개를 겹쳐서 그려보겠습니다. 3개 이상에도 동일한 방법이 적용됩니다.

설명은 주석으로 대체합니다.

 

 

#데이터 생성하기. 정규분포에서 임의추출하여 데이터 생성.
M_H=rnorm(500,170,5)
F_H=rnorm(500,160,5)

 

#x 축 범위 설정
x_range=seq(130,200,by=2)

 

#히스토그램 만들어서 저장, plot=FALSE로 설정하여 그려지지 않게함
M_H_hist=hist(M_H, breaks=x_range, plot = FALSE)
F_H_height_hist=hist(F_H, breaks=x_range, plot = FALSE)

 

#y축 범위 설정을 위해 y축 최댓값을 찾아줌
y_max=max(max(male_height_hist$counts),max(female_height_hist$counts))

 

#plot 함수를 이용하여 hist1과 hist2를 그림.
#ann=FALSE로 설정하여 그래프이름과 축이름 나오지 않게함.
#axes=FALSE로 설정하여 축의 tick이 나오지 않게함.
#adjustcolor 함수를 이용하여 투명도를 설정함. alpha가 0에 가까울 수록 투명해짐.
plot(male_height_hist, col=adjustcolor("blue",alpha=0.5),ann=FALSE,axes=FALSE,ylim=c(0,y_max))
plot(female_height_hist,col=adjustcolor("red",alpha=0.5), add = TRUE)

 

#title함수를 이용하여 그래프이름과 축이름 설정
title(main="남자 키 and 여자키",
      xlab="height(cm)",
      ylab="Frequncy",cex.main=1.6)

 

#축 설정
x_axis_tick=x_range
axis(side=1,at=x_axis_tick)
y_axis_tick=seq(0,y_max,by=10)
axis(side=2,at=y_axis_tick)

 

#범례 설정
legend("topright",c("male","female"),fill=c("blue","red"))

 

#테두리 설정
box("figure", col="gray")

 

 

영상이 더 편하신 분

 

반응형

댓글