library(DImodels)
library(dplyr)
## Load data
data(sim4)
sim4 <- sim4 %>% filter(treatment %in% c(50, 150))
## Fit model
mod <- glm(response ~ 0 + (p1 + p2 + p3 + p4 + p5 + p6)^2, data = sim4)
## Create data
## By default response would be averaged on the basis of richness
plot_data <- gradient_change_data(data = sim4,
prop = c("p1", "p2", "p3",
"p4", "p5", "p6"),
model = mod)
## Create plot
gradient_change_plot(data = plot_data)
## Average response with respect to evenness
plot_data <- gradient_change_data(data = sim4,
prop = c("p1", "p2", "p3",
"p4", "p5", "p6"),
model = mod,
gradient = "evenness")
gradient_change_plot(data = plot_data)
## Can also manually specify prop variables
## Add grouped proportions to data
plot_data <- group_prop(plot_data,
prop = c("p1", "p2", "p3", "p4", "p5", "p6"),
FG = c("Gr", "Gr", "Le", "Le", "He", "He"))
## Manually specify prop to show in pie-glyphs
gradient_change_plot(data = plot_data,
prop = c("Gr", "Le", "He"))
## Don't show line indicating the average change by using `average = FALSE` and
## Change colours of the pie-slices using `pie_colours`
gradient_change_plot(data = plot_data,
average = FALSE,
pie_colours = c("darkolivegreen1", "darkolivegreen4",
"orange1", "orange4",
"steelblue1", "steelblue4"))
## Manually specify only specific communities to be shown as pie-chart
## glyphs using `pie_data`.
## Note: It is important for the data specified in
## `pie_data` to have the .Pred and .Gradient columns.
## So the best use case for this parameter is to accept
## a subset of the data specified in `data`.#'
## Also use `facet_var` to facet the plot on an additional variable
gradient_change_plot(data = plot_data,
pie_data = plot_data %>% filter(.Richness %in% c(1, 6)),
facet_var = "treatment")
## If `add_var` was used during the data preparation step then
## multiple plots will be produced and can be arranged using nrow and ncol
# \donttest{
new_mod <- update(mod, ~. + treatment, data = sim4)
plot_data <- gradient_change_data(data = sim4[c(seq(1, 18, 3), 19:47), -2],
prop = c("p1", "p2", "p3",
"p4", "p5", "p6"),
model = new_mod,
add_var = list("treatment" = c(50, 250)))
## Create plot arranged in 2 columns
gradient_change_plot(data = plot_data,
pie_data = plot_data %>% filter(.Richness %in% c(1, 6)),
ncol = 2)
## Create plot for raw data instead of predictions
## Create the data for plotting by specifying `prediction = FALSE`
plot_data <- gradient_change_data(data = sim4[sim4$treatment == 50, ],
prop = c("p1", "p2", "p3",
"p4", "p5", "p6"),
prediction = FALSE)
## This data will not have any predictions
head(plot_data)
## Call the plotting function by specifying the variable you we wish to
## plot on the Y-axis by using the argument `y_var`
## Since this data wasn't created using `gradient_change_data`
## `prop` should be manually specified
gradient_change_plot(data = plot_data, y_var = "response",
prop = c("p1", "p2", "p3",
"p4", "p5", "p6"))
# }
Run the code above in your browser using DataLab