In a previous post I explained how to create all possible combinations of the levels of two factors using
expand.grid(). Another use for this function is to create a regular grid for two variables to create a levelplot or a contour plot.
For example, let’s say that we have fitted a multiple linear regression to predict wood stiffness (stiff, the response) using basic density (bd) and a measure of microfibril angle (t) as explanatory variables. The regression equation could be something like
stiffness = 3.439 + 0.009 bd - 0.052 t. In our dataset bd had a range of 300 to 700 kg m-3, while t had a range from 50 to 70.
We will use the
levelplot() function that is part of the
lattice package of graphical functions, create a grid for both explanatory variables (every 10 for bd and every 1 for t), predict values of stiffness for all combinations of bd and t, and plot the results.
# Create grid of data
wood = expand.grid(bd = seq(300, 700, 10), t = seq(50, 70, 1))
wood$stiffness = with(wood, 3.439 + 0.009*bd - 0.052*t)
levelplot(stiffness ~ bd*t, data = wood,
xlab='Basic density', ylab='T')
This code creates a graph like this. Simple.