This short note shows how to plot a field map from an agricultural experiment and why that may be useful.
library("knitr") knitr::opts_chunk$set(fig.align="center", fig.width=6, fig.height=6) options(width=90)
First, a plot of the experimental design of the oats data from @yates1935complex.
library(agridat) library(desplot) data(yates.oats) desplot(yates.oats, block ~ col+row, col=nitro, text=gen, cex=1, out1=block, out2=gen, out2.gpar=list(col = "gray50", lwd = 1, lty = 1))
This next example is from @ryder1981field. Fit an ordinary RCB model with fixed effects for block
and genotype
. Plot a heatmap of the residuals.
library(agridat) library(desplot) data(ryder.groundnut) gnut <- ryder.groundnut m1 <- lm(dry ~ block + gen, gnut) # Standard RCB model gnut$res <- resid(m1) desplot(gnut, res ~ col + row, text=gen, cex=1, main="ryder.groundnut residuals from RCB model")
Note the largest positive/negative residuals are adjacent to each other, perhaps caused by the original data values being swapped. Checking with experiment investigators (managers, data collectors, etc.) is recommended.
Make sure that the panel variable is a factor and then change the levels of the factor.
In the example below, the first three panels are set to the levels C1, C3, C5. The other levels remain in the same (relative) order.
library(agridat) library(desplot) data(besag.met) desplot(besag.met, yield~col*row|county, main="default county ordering") library(forcats) besag.met <- transform(besag.met, county=fct_relevel(county, c("C1","C3","C5"))) desplot(besag.met, yield~col*row|county, main="custom county ordering")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.