Learn R Programming

dMod (version 0.3.1)

plotPrediction: Plot a list of model predictions

Description

Plot a list of model predictions

Usage

plotPrediction(prediction, ..., scales = "free", facet = "wrap", transform = NULL)

Arguments

prediction
Named list of matrices or data.frames, usually the output of a prediction function as generated by Xs.
...
Further arguments going to subset.
scales
The scales argument of facet_wrap or facet_grid, i.e. "free", "fixed", "free_x" or "free_y"
facet
Either "wrap" or "grid"
transform
list of transformation for the states, see coordTransform.

Value

A plot object of class ggplot.

Details

The data.frame being plotted has columns time, value, name and condition.

Examples

Run this code
## Observation function
fn <- eqnvec(
  sine = "1 + sin(6.28*omega*time)",
  cosine = "cos(6.28*omega*time)"
)
g <- Y(fn, parameters = "omega")

## Prediction function for time
x <- Xt()

## Parameter transformations to split conditions
p <- NULL
for (i in 1:3) {
  p <- p + P(trafo = c(omega = paste0("omega_", i)), condition = paste0("frequency_", i))
}

## Evaluate prediction
times <- seq(0, 1, .01)
pars <- structure(seq(1, 2, length.out = 3), names = attr(p, "parameters"))

prediction <- (g*x*p)(times, pars)

## Plotting prediction
plot(prediction)
plotPrediction(prediction)
plotPrediction(prediction, scales = "fixed")
plotPrediction(prediction, facet = "grid")
plotPrediction(prediction, 
               scales = "fixed",
               transform = list(sine = "x^2", cosine = "x - 1"))

## Simulate data
dataset <- wide2long(prediction)
dataset <- dataset[seq(1, nrow(dataset), 5),]
dataset$value <- dataset$value + rnorm(nrow(dataset), 0, .1)
dataset$sigma <- 0.1
data <- as.datalist(dataset, split.by = "condition")

## Plotting data
plot(data)
plotData(data)

## Plotting data and prediction with subsetting
plot(prediction, data)
plotCombined(prediction, data)
plotCombined(prediction, data, 
             time <= 0.5 & condition == "frequency_1")
plotCombined(prediction, data, 
             time <= 0.5 & condition != "frequency_1", 
             facet = "grid")

Run the code above in your browser using DataLab