Below, we give the R code to plot the PDF and the CDF for normal distributions. We wish to get charts quite similar to the ones read on Wikipedia (Normal Distribution). The resulting charts are shown at the bottom.
Notice that we don’t resort to any specific R library. Also notice that the code below was written and run using Eclipse/StatET. Some line breaks may cause difficulties depending on your GUI.
# Édouard Tallent @ TaGoMa.Tech # September 2012 # The code below computes and draws the pdf and the cdf # for normal distribution functions # Displays the PDFs and CDFs at the same time par(mfrow=c(2,1)) # Some variables defined x <- seq(-6, 6, length = 500) mu <- c(0, 0, 0, -2) sigma <- c(sqrt(0.2), sqrt(1.0), sqrt(5.0), sqrt(0.5)) colour <- c("blue", "red", "gold", "darkgreen") labels <- c((expression(paste(mu == 0, ", ", sigma^2 == 0.2))), (expression(paste(mu == 0, ", ", sigma^2 == 1))), (expression(paste(mu == 0, ", ", sigma^2 == 5))), (expression(paste(mu == -2, ", ", sigma^2 == 0.5)))) # PDFs plot(x, dnorm(x, mean = mu[1], sd = sigma[1]), lwd=2, col=colour[1], type = "l", ylim = c(0, 1), main = "Probability density function", xlab = expression(atop(~chi,"The red curve is the standard normal distribution")), ylab = expression(Phi[mu ~ "," ~ sigma^2](chi))) for (i in 2:4){ lines(x, dnorm(x, mean = mu[i], sd = sigma[i]), lwd=2, col= colour[i]) } # Adds a grid grid() # grids can be customized # Adds a legend to the top-right legend("topright", inset=.05, labels, lwd=2, lty=c(1, 1, 1, 1), cex = 0.8, col=colour) # CDF plot(x, pnorm(x, mean = mu[1], sd = sigma[1]), lwd=2, col=colour[1], type = "l", ylim = c(0, 1), main = "Cumulative distribution function", xlab = expression(chi), ylab = expression(phi[mu ~ "," ~ sigma^2](chi))) # Adds a grid grid() for (i in 2:4){ lines(x, pnorm(x, mean = mu[i], sd = sigma[i]), lwd=2, col= colour[i]) } # Adds a legend to the top-left legend("topleft", inset=.05, labels, lwd=2, lty=c(1, 1, 1, 1), cex = 0.8, col=colour)
