# This script plots four chi-squared densities, with 1, 4, 9, and 16
# degrees of freedom, respectively.
#
# We first set up the varying elements (the distribution parameters,
# and the limits and tick-marks on the x-axes), and then loop through
# to plot each subplot with the same style.
# Set up the graphics device.
par(mfrow = c(2, 2))
par(xaxs = "i")
par(yaxs = "i")
par(mar = rep(3, 4))
# Set some graphical parameters.
line.type <- 1
line.width <- 2
# Set the changing parameters for each plot.
degreesOfFreedomList <- c(1, 4, 9, 16)
xMaxima <- c(0.5, 12, 25, 35)
yMaxima <- c(5, 0.2, 0.12, 0.08)
xTickMarks <- c(0.1, 2, 5, 5)
yTickMarks <- c(1, 0.05, 0.04, 0.02)
resolution <- 1000
axis.size <- 1.5
# Loop through and plot.
for (i in 1:4) {
xMax <- xMaxima[i]
yMax <- yMaxima[i]
xTickMark <- xTickMarks[i]
yTickMark <- yTickMarks[i]
degreesOfFreedom <- degreesOfFreedomList[i]
x.values <- seq(from = 0, to = xMax, length.out = resolution)
chi.squared.pdf.values <- dchisq(x.values, df = degreesOfFreedom)
plot(x.values, chi.squared.pdf.values,
xlim = c(0, xMax), ylim = c(0, yMax),
type = "l", lty = line.type, lwd = line.width,
main = "", xlab = "", ylab = "",
bty = "n", xaxt = "n", yaxt = "n")
x.axis <- seq(from = 0, to = xMax, by = xTickMark)
y.axis <- seq(from = 0, to = yMax, by = yTickMark)
axis(1, at = x.axis, labels = x.axis, cex.axis = axis.size)
axis(2, at = y.axis, labels = y.axis, cex.axis = axis.size)
}
# Close the graphics device.
dev.print(device = postscript, "5.4.eps", horizontal = TRUE)