2. 그래프 그리기 (고수준 함수)/hist() - 히스토그램
R 히스토그램 여러개 겹쳐그리기 (투명하게)
makhimh
2020. 12. 9. 13:36
반응형
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"))
아래는 결과입니다.

반응형