---
title: "Plotting field maps with the desplot package"
author: "Kevin Wright"
date: "`r Sys.Date()`"
bibliography: desplot.bib
output:
  rmarkdown::html_vignette:
vignette: >
  %\VignetteIndexEntry{Plotting field maps with the desplot package}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

# Abstract

This short note shows how to plot a field map from an agricultural experiment and why that may be useful.

# R setup

```{r setup}
library("knitr")
knitr::opts_chunk$set(fig.align="center", fig.width=6, fig.height=6)
options(width=90)
```

## Example 1

First, a plot of the experimental design of the oats data from @yates1935complex.
```{r yates}
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))
```

## Example 2

This next example is from @ryder1981field.  Fit an ordinary RCB model with fixed effects for `block` and `genotype`.  Plot a heatmap of the residuals.

```{r ryder}
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.

# Infrequently asked questions

## How do I change the ordering of panels?

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.

```{r panelorder, eval=FALSE}
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")
```
## References
	
