R의 히스토그램에 정규 곡선을 오버레이하는 방법(예제 2개)


R의 히스토그램에 정규 곡선을 오버레이하려는 경우가 종종 있습니다.

다음 예에서는 기본 R 및 ggplot2 에서 이를 수행하는 방법을 보여줍니다.

예 1: 기본 R 히스토그램에 정규 곡선을 겹쳐 놓습니다.

다음 코드를 사용하여 기본 R에 히스토그램을 만들고 히스토그램에 정규 곡선을 겹칠 수 있습니다.

 #make this example reproducible
set. seed ( 0 )

#define data
data <-rnorm( 1000 )

#create histogram
hist_data <- hist(data)

#define x and y values to use for normal curve
x_values <- seq(min(data), max(data), length = 100 )
y_values <- dnorm(x_values, mean = mean(data), sd = sd(data)) 
y_values <- y_values * diff(hist_data$mids[1:2]) * length(data) 

#overlay normal curve on histogram
lines(x_values, y_values, lwd = 2 )

R의 히스토그램에 정규 곡선을 겹쳐 놓습니다.

플롯의 검은색 곡선은 정규 곡선을 나타냅니다.

색상, 너비 및 선 유형을 각각 수정하려면 col , lwdlty 인수를 자유롭게 사용하십시오.

 #overlay normal curve with custom aesthetics
lines(x_values, y_values, col=' red ', lwd= 5 , lty=' dashed ')

예 2: ggplot2의 히스토그램에 정규 곡선 중첩

다음 코드를 사용하여 ggplot2에서 히스토그램을 만들고 히스토그램에 정규 곡선을 오버레이할 수 있습니다.

 library (ggplot2)

#make this example reproducible
set. seed ( 0 )

#define data
data <- data. frame (x=rnorm( 1000 ))

#create histogram and overlay normal curve
ggplot(data, aes(x)) +
  geom_histogram(aes(y = ..density..), fill=' lightgray ', col=' black ') +
  stat_function(fun = dnorm, args = list(mean=mean(data$x), sd=sd(data$x)))

R의 ggplot2에 오버레이 히스토그램

플롯의 검은색 곡선은 정규 곡선을 나타냅니다.

색상, 너비 및 선 유형을 각각 수정하려면 col , lwdlty 인수를 자유롭게 사용하십시오.

 #overlay normal curve with custom aesthetics
ggplot(data, aes(x)) +
  geom_histogram(aes(y = ..density..), fill=' lightgray ', col=' black ') +
  stat_function(fun = dnorm, args = list(mean=mean(data$x), sd=sd(data$x)),
                col=' red ', lwd= 2 , lty=' dashed '))

참고 :여기에서 stat_function 에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 상대 빈도 히스토그램을 만드는 방법
R에서 히스토그램 나누기를 지정하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다