R/figures/pa-plot-code.R

Defines functions theme_manuscript_v2

# Prediction A plot
# Oct 2019
# Anthony Davidson
require(extrafont)
# library(jtools)

##function plot
theme_manuscript_v2 <- function(base_size = 18,
         base_family = "Times",
         base_line_size = base_size / 170,
         base_rect_size = base_size / 300) {
  theme_bw(
    base_size = base_size,
    base_family = base_family,
    base_line_size = base_line_size
  ) %+replace%
    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.line.y = element_line(size = 1),
          axis.line.x = element_blank(),
          axis.ticks.x = element_blank(),

          strip.text = element_text(face="bold",colour = "black",size =14, family = "Times"))
#maybe complete = true is issue?
}


## ------------------------------------------------------------------------
# getting factor levels correct for once
plot.dat.all1 <-  abund.dat5 %>%
  mutate(Rats = factor(Conditions, labels = c("Full", "Reduced")),
         Control = factor(control, labels = c("Yes", "No")),
         Valley = factor(valley, labels = c("Eglinton", "Hollyford")),
         Date = as.Date(true.date),
         Treatments = factor(treat.six, levels = c("hol no control rats.removed",
                                                   "hol control rats.present",
                                                   "hol control rats.removed",
                                                   "egl control rats.present",
                                                   "egl control rats.removed" ,
                                                   "hol no control rats.present")),
         Prediction = NA) %>%
  mutate(Prediction = ifelse(Date == "2000-08-01", "A", Prediction),
         Prediction = ifelse(Date == "2001-08-01" |
                               Date == "2003-08-01" |
                               Date == "2003-08-01" |
                               Date == "2003-08-01" , "B", Prediction),
         Prediction = ifelse(Date == "2001-08-01" |
                               Date == "2003-08-01" |
                               Date == "2003-08-01" |
                               Date == "2003-08-01" , "B", Prediction),
         Prediction = ifelse(Date == "2001-08-01" |
                               Date == "2003-08-01" |
                               Date == "2003-08-01" |
                               Date == "2003-08-01" , "B", Prediction),
         Prediction = ifelse(Date == "2001-08-01" |
                               Date == "2003-08-01" |
                               Date == "2003-08-01" |
                               Date == "2003-08-01" , "B", Prediction))
# head(abund.dat5)
low.abund.dat <- plot.dat.all1 %>%
  # mutate(N = log(N) %>%  # for when using out.N
  filter(trip == 10 | trip == 11 | trip == 12 | trip == 13 | trip == 14 | trip == 15)
# filter(low.abund.dat, trip.no == 15)$true.date

# summary for plots
# create summarised datasets of need
low.cond.sum <- low.abund.dat %>%
  group_by(Control,Valley,Conditions) %>%
  summarise(N.count = n(),
            N = mean(N, rm.na = TRUE),
            tvalue = qt(p = 0.025, df = N.count - 1, lower.tail = FALSE),
            low.se = mean(se.N),
            lcl.low.tv = N - (tvalue*low.se),
            ucl.low.tv = N + (tvalue*low.se),
            lcl.low = N - (1.96*low.se),
            ucl.low = N + (1.96*low.se))

low.con <- low.abund.dat %>%
  group_by(Control)  %>%
  summarise(N.count = n(),
            N = mean(N, rm.na = TRUE),
            tvalue = qt(p = 0.025, df = N.count - 1, lower.tail = FALSE),
            low.se = mean(se.N),
            lcl.low.tv = N - (tvalue*low.se),
            ucl.low.tv = N + (tvalue*low.se),
            lcl.low = N - (1.96*low.se),
            ucl.low = N + (1.96*low.se))

low.con1 <- low.con %>%
  mutate(lcl.low = ifelse(lcl.low < 0, 0, lcl.low),
         Conditions = NA,
         valley = NA)

low.mod3 <- glm(N ~ Control + Valley + Conditions + Conditions:Control, family = "gaussian", data = low.abund.dat)
summary.low.mod3 <- summary(low.mod3)
low.mod3.fun <- anova(low.mod3, test = "F")

# low.mod3.fun
# summ(low.mod3)

# # summary
# model.summary1 <- summary(low.mod3)
# # jtools::summ(low.mod3)
#
# # parameters for extraction
# output.dens <- plot_summs(low.mod3, scale = TRUE, plot.distributions = TRUE, inner_ci_level = .9)
# # output.dens
#
# # summary
# model.summary1 <- summary(low.mod3)
# jtools::summ(low.mod3)

# parameters for extraction
output.dens <- plot_summs(low.mod3, scale = TRUE, plot.distributions = TRUE, inner_ci_level = .9)
# output.dens
# head(low.abund.dat)

low.plot.data <- low.abund.dat %>%
  select(N, valley, Control, Conditions) %>%
  mutate(Control = factor(Control, labels = c("No", "Yes")),
         Valley = factor(valley, labels = c("Eglinton", "Hollyford")),
                         Conditions = factor(Conditions, labels = c("No", "Yes")))

# plot
low.plot.out <-
  ggplot(data = low.plot.data, aes(y = N, x = Conditions))+
  # data
  geom_jitter(aes(y = N, x = Conditions, col = Control, shape = Valley, fill = Control),
              stroke = 1.05,
              alpha = 0.7, size = 4, width = 0.3) +

  geom_point(data = low.con1, aes(y = N, x = Control), shape = "square",col= "grey60",  size = 5) +

  geom_errorbar(data = low.con1, aes(x = Control, ymin = lcl.low, ymax = ucl.low,
                                      width = 0),
                lwd = 1,
                col= "grey60") +

  #labels
  geom_vline(xintercept = 1.5, lty = 2) +
  xlab("Rat removal") +
  ylab(expression(paste("Mouse abundance"," ", "(", italic(N[jt]), ")"))) +
  #Aesthics
  scale_color_manual(name = "Stoat removal",
                     values = c("black", "black")) +

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

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

  guides(fill = "none",
         col = guide_legend(override.aes = list(
           shape = c(15,0), alpha = 1
         )),
         shape = guide_legend(override.aes = list(
           shape = c(24, 21), size = 4
         ))) +  geom_vline(xintercept = 1.5, lty = 2) +

  #theme
  theme_classic()+
  theme_bw() +
  theme(strip.background = element_blank(),
        strip.text.y = element_blank(),

        plot.title = element_text(hjust = 0, size=24, family = "Times", color="black"),
        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 =10, family = "Times"),
        legend.title = element_text(colour = "black", size =10, 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 =16, 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.line.y = element_line(size = 1),
        axis.line.x = element_blank(),
        axis.ticks.x = element_blank(),

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

low.plot.out
davan690/beech-publication-wr documentation built on March 29, 2020, 11:09 a.m.