R/figures/pd-plot-code.R

# data for lines ----------------------------------------------------------
# Feb - seed
#feb filtered (parameters)
# flip dataset
# source("./R/Davidson_2019_Model_wrangling.R")
out.para.feb <- para.plot.dat %>%
  filter(month == "Feb") %>%
  select(mean.b, Control, Valley, para) %>%
  droplevels() %>%
  spread(key = para, value = mean.b)

#this gives us 12 times lines to estimate from


# for each group I need to ....

#feb filtered (data)
out.dat1.feb <- out.full.136 %>%
  filter(month == "Feb") %>%
  mutate(lag.sjt = lag(log.seed),
         lag.N = lag(N)) %>%
  select(-var) %>%
  droplevels()

out.dat1.feb2 <-  out.full.136 %>%
  filter(month == "Feb") %>%
  mutate(lag.sjt = lag(log.seed),
         lag.N = lag(N)) %>%
  group_by(Control, Valley) %>%
  summarise(
    M.seed = mean(lag.sjt, na.rm = TRUE),
    M.dens = mean(lag.N, na.rm = TRUE),
    M.rat = mean(lag.rat.mna, na.rm = TRUE),

    MAX.rat = max(lag.rat.mna, na.rm = TRUE),
    MAX.seed = max(lag.sjt, na.rm = TRUE),
    MAX.dens = max(lag.N, na.rm = TRUE),
    MAX.r = max(mean.r, na.rm = TRUE),

    min.seed = 0,
    min.dens = 0,
    min.rat = 0,
    min.r = min(mean.r, na.rm = TRUE)) %>%
  ungroup()

# #merge two datasets
feb.plot <- left_join(out.dat1.feb2 ,out.para.feb)

# predict estimates for seed lines
# seed.feb.plot1 <- feb.plot %>%
#   mutate(pred.mean = b0 + (b.seed * M.seed) + (b.dens*M.dens) + (b.rat*M.rat),
#          pred.min = b0 + (b.seed * min.seed) + (b.dens*min.dens) + (b.rat*min.rat),
#          pred.max = b0 + (b.seed * MAX.seed) + (b.dens*MAX.dens) + (b.rat*MAX.rat))
feb.plot1 <- feb.plot %>%
  mutate(pred.mean = Intercept + (Seed * M.seed) + (Density*M.dens) + (Rats*M.rat),
         pred.min = Intercept + (Seed * M.seed) + (Density*min.dens) + (Rats*M.dens),
         pred.max = Intercept + (Seed * M.seed) + (Density*MAX.dens) + (Rats*M.dens))

# # r2
# # plot(pred~mean.r, data = seed.feb.plot1)
#
#
# # data in tidyverse for ggplot2
out.dens.feb2 <- feb.plot1 %>%
  gather(key = pred.fact, value = mean.r, pred.min:pred.max) %>%
  mutate(lag.N = ifelse(pred.fact == "pred.min", min.dens, MAX.dens)) %>%
  select(Valley, Control, mean.r, lag.N) %>%
  mutate(treat = paste(Valley, Control),
         lag.N = ifelse(lag.N>0, lag.N, 0.1))
#
# # dens-feb ----------------------------------------------------------------
# #spread
# dens.feb.plot1 <- feb.plot %>%
#   mutate(pred.min = b0 + (b.dens * dat.mice.min),
#          pred.max = (b0 + b.dens * dat.mice.max))
#
# #tidyverse
# out.dens.feb2 <- dens.feb.plot1 %>%
#   gather(key = pred.fact, value = mean.r, pred.min:pred.max) %>%
#   mutate(lag.sjt = ifelse(pred.fact == "pred.min", dat.mice.min, dat.mice.max)) %>%
#   select(valley, control, mean.r, lag.sjt) %>%
#   mutate(treat = paste(valley, control))
#
#
# # rat-feb -----------------------------------------------------------------
# #spread and predict
# rat.feb.plot1 <- feb.plot %>%
#   mutate(pred.min = b0 + (b.dens * dat.rat.min),
#          pred.max = (b0 + b.dens * dat.rat.max))
#
# #tidyverse
# out.rat.feb2 <- rat.feb.plot1 %>%
#   gather(key = pred.fact, value = mean.r, pred.min:pred.max) %>%
#   mutate(lag.sjt = ifelse(pred.fact == "pred.min", dat.rat.min, dat.rat.max)) %>%
#   select(valley, control, mean.r, lag.sjt) %>%
#   mutate(treat = paste(valley, control))

# data ----------------------
### Seed lines (feb)

pD.plot.3 <- out.full.136 %>%
  filter(month == "Feb") %>%
  mutate(lag.sjt = lag(log.seed),
         lag.N = lag(N))

pd.plot.feb <- ggplot(pD.plot.3, aes(y = mean.r, x = lag.N)) +

  geom_errorbar(aes(ymin = lcl.r, ymax = ucl.r), lwd = 0.75, alpha = 0.2, position=position_dodge(width=30), width = 0) +

  geom_point(aes(colour = Valley,shape = Valley, fill = Control),
             stroke = 1.5, size = 2, alpha = 0.7) +

  # ggplot(out.seed.feb2, aes(y = mean.r, x = lag.sjt)) +
  geom_line(data = out.dens.feb2, aes(y = mean.r, x = lag.N, group = treat),size = 0.75, alpha = 0.7) +
  geom_point(data = out.dens.feb2, aes(y = mean.r, x = lag.N, shape = Valley, fill = Control, group = treat), size = 5) +

  scale_color_manual(name = "Stoat Control",
                     values = c("white", "black", "white")) +

  scale_shape_manual(name = "Ecosystem",
                     values = c(24, 21)) +
  scale_size_manual(name = "Rat Control", values = c(2.5, 3, 2.5)) +
  scale_fill_manual(
    name = "Stoat Control",
    values = c("cornflowerblue", "darkorange", "cornflowerblue")
  ) +
  # Remove fill legend and replace the fill legend using the newly created size
  guides(
    col = "none",
    size = guide_legend(override.aes = list(
      shape = c(15,0),alpha = 1
    )),
    shape = guide_legend(override.aes = list(
      shape = c(24, 21), size = 4
    )),
    fill = guide_legend(override.aes = list(
      col = c("cornflowerblue", "darkorange"),shape = c("square"),
      size = 4
    ))
  ) +

  #
  # # scale_colour_manual(name = "Stoat control",
  # #                     labels = c("E-", "H+", "H-"),
  # #                     values = c("black","black", "black")) +
  # # scale_shape_manual(name = "Valley",
  # #                    labels = c("E", "H"),
  # #                    values = c(25,21)) +
  # # scale_fill_manual(name = "Stoat control",
  # #                   labels = c("E-", "H+", "H-"),
  # #                   values = c("white","black", "white")) +


# xlab(expression(paste("Intake"," ", "Rate"," ","(",italic(S[jt]),")" ))) +
xlab(expression(paste("Mouse"," ", "Density"," ","(",italic(N[jt]),")" ))) +
  # xlab(expression(atop(paste("Minimum"," ", "number"," "),paste("of", " ", "rats"," ","(",italic(R[jt]),")"))) )+
  # xlab(expression(atop(paste("Minimum"," ", "number"," "),paste("of", " ", "rats"," ","(",italic(R[jt]),")"))) )+

  ylab(expression(atop(paste("Rate"," ", "of"," ",
                             "increase"),paste(" ", "of"," ",
                                               "mice"," ","(",italic(r[jt]),")"))) ) +
  # scale_y_continuous(expand = c(0,0.01),breaks = seq(-4,4,1)) +
  theme_tufte() +
  theme_bw() +
  theme(strip.background = element_blank(),
        strip.text.y = element_blank(),

        plot.title = element_text(hjust = 0, size=24, family = "Times", color="black", margin = margin(t = 10, b = 10)),
        plot.subtitle=element_text(size=16, face="italic", color="black"),

        legend.position = "none",
        legend.key = element_blank(),
        legend.background = element_rect(fill="white", size=1),
        legend.key.size=unit(1,"cm"),
        legend.text = element_text(colour = "black", size =16, family = "Times"),
        legend.title = element_text(colour = "black", size =16, family = "Times"),

        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.spacing = unit(2, "lines"),
        panel.border = element_blank(),

        axis.title.y = element_text(colour = "black",size =20, family = "Times", angle = 90),
        axis.title.x = element_text(colour = "black", size =20, family = "Times"),
        axis.text.y=element_text(colour = "black",size = 20, family = "Times"),
        axis.text.x = element_text(colour = "black", size =20, family = "Times"),

        axis.ticks.x = element_line(size = 1),
        axis.ticks.y = element_line(size = 1),
        axis.line.x = element_line(size = 1),
        axis.line.y = element_line(size = 1),

        strip.text = element_text(face="bold",colour = "black",size =14, family = "Times"))
pd.plot.feb

# pD.plot.3$month

pd.plot <- ggplot(data = pD.plot.3, aes(y = mean.r, x = lag.N)) +
  #error bars
  geom_errorbar(aes(ymin = lcl.r, ymax = ucl.r),
                lwd = 0.75,
                alpha = 0.2,
                position=position_dodge(width=30),
                width = 0) +
  #background points
  geom_point(aes(colour = Control,
                 shape = Valley,
                 fill = Conditions),
             stroke = 1.001, size = 2,
             alpha = 0.2) +
  geom_line(data = out.dens.feb2,
            aes(y = mean.r, x = lag.N, group = treat),
            size = 0.75,
            alpha = 0.7) +
  geom_point(data = out.dens.feb2, aes(y = mean.r, x = lag.N, shape = Valley, fill = Control, group = treat), size = 5)+
  #Aesthics
  scale_color_manual(name = "Rat removal",
                     values = c("white", "black", "white", "black")) +

  scale_shape_manual(name = "Ecosystem",
                     values = c(24, 21)) +

  scale_fill_manual(name = "Stoat control",
                    values = c("white", "black","white", "black")) +

  guides(fill = "none",
         col = guide_legend(override.aes = list(
           shape = c(15,0), alpha = 0.2
         )),
         shape = guide_legend(override.aes = list(
           shape = c(24, 21), alpha = 1, size = 4
         ))) +
  xlab(expression(paste("Mouse"," ", "Density"," ","(",italic(N[jt]),")" ))) +
  # xlab(expression(atop(paste("Minimum"," ", "number"," "),paste("of", " ", "rats"," ","(",italic(R[jt]),")"))) )+
  # xlab(expression(atop(paste("Minimum"," ", "number"," "),paste("of", " ", "rats"," ","(",italic(R[jt]),")"))) )+
  # xlab(expression(paste("Avaliable seed"," ", "(", italic(Seed[jt]), ")"))) +
  ylab(expression(atop(paste("Rate"," ", "of"," ",
                             "increase"),paste(" ", "of"," ",
                                               "mice"," ","(",italic(r[jt]),")"))) ) +
  geom_hline(yintercept = 0, lty = 2, size = 0.5) +
  #theme
  theme_tufte() +
  theme_bw() +
  theme(strip.background = element_blank(),
        strip.text.y = element_blank(),

        plot.title = element_text(hjust = 0, size=24, family = "Times", color="black", margin = margin(t = 10, b = 10)),
        plot.subtitle=element_text(size=16, face="italic", color="black"),

        legend.position = "right",
        legend.key = element_blank(),
        legend.background = element_rect(fill="white", size=1),
        legend.key.size=unit(1,"cm"),
        legend.text = element_text(colour = "black", size =16, family = "Times"),
        legend.title = element_text(colour = "black", size =16, family = "Times"),

        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.spacing = unit(2, "lines"),
        panel.border = element_blank(),

        axis.title.y = element_text(colour = "black",size =20, family = "Times", angle = 90),
        axis.title.x = element_text(colour = "black", size =20, family = "Times"),
        axis.text.y=element_text(colour = "black",size = 20, family = "Times"),
        axis.text.x = element_text(colour = "black", size =20, family = "Times"),

        axis.ticks.x = element_line(size = 1),
        axis.ticks.y = element_line(size = 1),
        axis.line.x = element_line(size = 1),
        axis.line.y = element_line(size = 1),

        strip.text = element_text(face="bold",colour = "black",size =14, family = "Times"))
pd.plot




# Save plot
# export plot for example vignette
# png("C://Code/beech-publication-wr/figs/fig-51.png")
# pd.plot
# dev.off()
davan690/beech-publication-wr documentation built on March 29, 2020, 11:09 a.m.