Figure 7.7.
ASKurz opened this issue · 2 comments
ASKurz commented
I can't seem to get the name to work dynamically (e.g., paste("fig", w, sep = "_")
returns an error). I would like to code this such that the loop returns three objects fig_-1
, fig_0
and fig_1
, which I could save or put into the multiplot()
function.
Here's my curent attempt:
# loop over values of waterC and plot predictions
shade.seq <- -1:1
for(w in -1:1){
# defining the subset of the original data
dt <- d[d$water.c == w, ]
# defining our new data
nd <- tibble(water.c = w, shade.c = shade.seq)
# using our sampling skills, like before
fit.7.9 <- fitted(b7.9, newdata = nd) %>%
as_tibble() %>%
bind_cols(nd)
# specifying our custom plot
fig <- ggplot() +
theme_pander() +
geom_ribbon(data = fit.7.9,
aes(x = shade.c,
ymin = `2.5%ile`,
ymax = `97.5%ile`),
fill = "#CC79A7", alpha = 1/5) +
geom_line(data = fit.7.9, aes(x = shade.c, y = Estimate),
color = "#CC79A7") +
geom_point(data = dt, aes(x = shade.c, y = blooms),
color = "#CC79A7") +
coord_cartesian(xlim = c(-1, 1), ylim = c(0, 350)) +
scale_x_continuous(breaks = c(-1, 0, 1)) +
labs(x = "Shade (centered)", y = "Blooms",
title = paste("Water (centered) =", w)) +
theme(text = element_text(family = "Times"))
# plotting that joint
plot(fig)
}
paul-buerkner commented
Maybe the assign()
function could be helpful to you. The name fig_-1
is invalid though.
ASKurz commented
Ah, that makes sense. Thanks Paul!