본문 바로가기
2. 그래프 그리기 (고수준 함수)/hist() - 히스토그램

R 히스토그램 여러개 겹쳐그리기 (투명하게)

by makhimh 2020. 12. 9.
반응형

R 히스토그램 여러개 겹쳐그리기 (투명하게)

 

오늘 코드 모아보기

 

#break 설정
x_ax=seq(02,8,0.2)

#히스토그램 만들어서 저장, plot=FALSE로 설정하여 그려지지 않게함
hist1=hist(iris$Sepal.Length, breaks=x_ax, plot = FALSE)
hist2=hist(iris$Sepal.Width, breaks=x_ax, plot = FALSE)

#plot 함수로 히스토그램 그리기
plot(hist1, col=adjustcolor("red",alpha=0.5),ylim=c(0,40),ann=FALSE)
plot(hist2, col=adjustcolor("blue",alpha=0.5), add = TRUE)

#제목설정
title(main="my histogram")

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

 


따라하기

 

데이터는 iris데이터를 사용하겠습니다. R내장데이터입니다.

 

iris데이터의 Sepal.Length와 Sepal.Width를 히스토그램으로 그릴 것입니다.

 

먼저 x축 범위를 알아야 하는데요. 이를 위해 두 데이터의 최댓값과 최솟값을 확인합니다.

 

> max(iris$Sepal.Length,iris$Sepal.Width)
[1] 7.9
> min(iris$Sepal.Length,iris$Sepal.Width)
[1] 2

 

x범위를 2~8사이로 설정합니다. 히스토그램에서는 breaks(계급구간)을 설정할 수 있으므로, 아래와 같이 설정합니다. 간격 0.2는 그래프가 그려진 뒤에 변경해줍시다. 

 

#break 설정
x_ax=seq(02,8,0.2)

 

히스토그램을 그려야하는데요. hist 함수로 바로 그리지 않고, hist함수를 변수에 저장한 뒤 plot 함수로 그려줄것입니다. 아래와 같이 저장합시다.

 

#히스토그램 만들어서 저장, plot=FALSE로 설정하여 그려지지 않게함
hist1=hist(iris$Sepal.Length, breaks=x_ax, plot = FALSE)
hist2=hist(iris$Sepal.Width, breaks=x_ax, plot = FALSE)

 

plot함수를 시용하여 히스토그램을 그립니다. 두번째 함수를 그릴 때는 add=TRUE로 설정합니다. adjustcolor 함수로 투명도를 설정합니다. ylim은 전체가 나오도록 적당히 조절합니다. ann을 FALSE로 설정하여 title, 축이름 등이 나오지 않게 합니다. 이후에 title 함수로 설정할 것입니다. 

 

#plot 함수로 히스토그램 그리기
plot(hist1, col=adjustcolor("red",alpha=0.5),ylim=c(0,40),ann=FALSE)
plot(hist2, col=adjustcolor("blue",alpha=0.5), add = TRUE)


마지막으로 title과 범례를 추가해줍니다.

 

#title
title(main="my histogram")

#범례
legend("topright",legend=c("length","width"),fill=c("red","blue"))

 

아래는 결과입니다. 

 


 

반응형

댓글