Calculate and graph percent reproductive dry weight= ((reproductive dry weight)/(total dry weight))*100

Load packages

Setting up

#read in data
all<-read.csv(
      "https://raw.githubusercontent.com/Cmwegener/thesis/master/data/field/CB_field_data_plus.csv",
    header = TRUE
  )
#converting to date format
all$date<-as.Date(all$date, format = c("%m/%d/%Y"))

#calculating percent vegetative dry weight
all$perc.vdw<-(100-all$perc.rdw)

Subset data by site

HS<-subset(all, site.old == "HS")
BY<-subset(all, site.old == "BY")
ND<-subset(all, site.old == "ND")
PC<-subset(all, site.old == "PC")

Graph- basic

a <-
  ggplot(data = HS,
         mapping = aes(x = date, y = perc.rdw, group = date)) + geom_boxplot(alpha=0.3) + ggtitle("Horseshoe Bay")+ylim(0,100)+
  scale_x_date(date_breaks = "2 month", date_labels = "%b %Y") + theme(plot.title = element_text(size = 20, face = "plain")) +
  geom_jitter(position=position_jitter(0.5),
              size=1,
              alpha = 0.3)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )

b <-
  ggplot(data = BY,
         mapping = aes(x = date, y = perc.rdw, group = date)) + geom_boxplot(alpha=0.3) + ggtitle("Brickyard Park") +ylim(0,100)+
  scale_x_date(date_breaks = "2 month", date_labels = "%b %Y") + theme(plot.title = element_text(size = 20, face = "plain")) +
  geom_jitter(position=position_jitter(0.5),
              size=1,
              alpha = 0.3)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )


c <-
  ggplot(data = ND,
         mapping = aes(x = date, y = perc.rdw, group = date)) + geom_boxplot(alpha=0.3) + ggtitle("Point Chauncy") +ylim(0,100)+
  scale_x_date(date_breaks = "2 month", date_labels = "%b %Y") + theme(plot.title = element_text(size = 20, face = "plain")) +
  geom_jitter(position=position_jitter(0.5),
              size=1,
              alpha = 0.3)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )
d <-
  ggplot(data = PC,
         mapping = aes(x = date, y = perc.rdw, group = date)) + geom_boxplot(alpha=0.3) + ggtitle("Paradise Cay") +ylim(0,100)+
  scale_x_date(date_breaks = "2 month", date_labels = "%b %Y") + theme(plot.title = element_text(size = 20, face = "plain")) +
  geom_jitter(position=position_jitter(0.5),
              size=1,
              alpha = 0.3)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )
Ffigure <- ggarrange(d, c, b, a, ncol = 4, nrow = 1)
## Warning: Removed 31 rows containing non-finite values (stat_boxplot).
## Warning: Removed 49 rows containing missing values (geom_point).
## Warning: Removed 21 rows containing non-finite values (stat_boxplot).
## Warning: Removed 28 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing non-finite values (stat_boxplot).
## Warning: Removed 42 rows containing missing values (geom_point).
## Warning: Removed 13 rows containing non-finite values (stat_boxplot).
## Warning: Removed 31 rows containing missing values (geom_point).
annotate_figure(
  Ffigure,
  left = text_grob(
    "Percent reproductive dry weight",
    color = "black",
    rot = 90,
    size = 25,
    face="bold"
  )
)

Add line at 12.7%

a <-
  ggplot(data = HS,
         mapping = aes(x = date, y = perc.rdw, group = date)) + geom_boxplot(alpha=0.3) + ggtitle("Horseshoe Bay")+ylim(0,100)+
  scale_x_date(date_breaks = "2 month", date_labels = "%b %Y") + theme(plot.title = element_text(size = 20, face = "plain")) +
  geom_jitter(position=position_jitter(0.5),
              size=1,
              alpha = 0.3)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )+
  geom_hline(yintercept=12.7, size=2, color="red")

b <-
  ggplot(data = BY,
         mapping = aes(x = date, y = perc.rdw, group = date)) + geom_boxplot(alpha=0.3) + ggtitle("Brickyard Park") +ylim(0,100)+
  scale_x_date(date_breaks = "2 month", date_labels = "%b %Y") + theme(plot.title = element_text(size = 20, face = "plain")) +
  geom_jitter(position=position_jitter(0.5),
              size=1,
              alpha = 0.3)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )+
  geom_hline(yintercept=12.7, size=2, color="red")


c <-
  ggplot(data = ND,
         mapping = aes(x = date, y = perc.rdw, group = date)) + geom_boxplot(alpha=0.3) + ggtitle("Point Chauncy") +ylim(0,100)+
  scale_x_date(date_breaks = "2 month", date_labels = "%b %Y") + theme(plot.title = element_text(size = 20, face = "plain")) +
  geom_jitter(position=position_jitter(0.5),
              size=1,
              alpha = 0.3)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )+
  geom_hline(yintercept=12.7, size=2, color="red")

d <-
  ggplot(data = PC,
         mapping = aes(x = date, y = perc.rdw, group = date)) + geom_boxplot(alpha=0.3) + ggtitle("Paradise Cay") +ylim(0,100)+
  scale_x_date(date_breaks = "2 month", date_labels = "%b %Y") + theme(plot.title = element_text(size = 20, face = "plain")) +
  geom_jitter(position=position_jitter(0.5),
              size=1,
              alpha = 0.3)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )+
  geom_hline(yintercept=12.7, size=2, color="red")


Ffigure <- ggarrange(d, c, b, a, ncol = 4, nrow = 1)
## Warning: Removed 31 rows containing non-finite values (stat_boxplot).
## Warning: Removed 50 rows containing missing values (geom_point).
## Warning: Removed 21 rows containing non-finite values (stat_boxplot).
## Warning: Removed 32 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing non-finite values (stat_boxplot).
## Warning: Removed 37 rows containing missing values (geom_point).
## Warning: Removed 13 rows containing non-finite values (stat_boxplot).
## Warning: Removed 34 rows containing missing values (geom_point).
annotate_figure(
  Ffigure,
  left = text_grob(
    "Percent reproductive dry weight",
    color = "black",
    rot = 90,
    size = 25,
    face="bold"
  )
)

Calculte average percent dwr for each site across all surveys

mean(as.numeric(PC$perc.rdw), na.rm = TRUE)
## [1] 14.03607
mean(as.numeric(ND$perc.rdw), na.rm = TRUE)
## [1] 29.37593
mean(as.numeric(BY$perc.rdw), na.rm = TRUE)
## [1] 10.44429
mean(as.numeric(HS$perc.rdw), na.rm = TRUE)
## [1] 24.61342

####Stacked graph#### Df in the wrong format to do stacked percent table. Going to convert. Converting: https://stackoverflow.com/questions/29719701/stacked-bar-plot-with-percentages-in-separate-columns Graph: https://www.r-graph-gallery.com/48-grouped-barplot-with-ggplot2.html

#selected needed columns
HS.dw<-data.frame(HS$date, HS$perc.rdw, HS$perc.vdw)
BY.dw<-data.frame(BY$date, BY$perc.rdw, BY$perc.vdw)
ND.dw<-data.frame(ND$date, ND$perc.rdw, ND$perc.vdw)
PC.dw<-data.frame(PC$date, PC$perc.rdw, PC$perc.vdw)

#reshape df
library(reshape2)
HS.long<- melt(HS.dw, id = "HS.date")
BY.long<- melt(BY.dw, id = "BY.date")
ND.long<- melt(ND.dw, id = "ND.date")
PC.long<- melt(PC.dw, id = "PC.date")


#remame columns
names(HS.long)[1] <- "date"
names(HS.long)[2] <- "tissue.type"
names(HS.long)[3] <- "percent.dw"

names(BY.long)[1] <- "date"
names(BY.long)[2] <- "tissue.type"
names(BY.long)[3] <- "percent.dw"

names(ND.long)[1] <- "date"
names(ND.long)[2] <- "tissue.type"
names(ND.long)[3] <- "percent.dw"

names(PC.long)[1] <- "date"
names(PC.long)[2] <- "tissue.type"
names(PC.long)[3] <- "percent.dw"

#test graph- basic
ggplot(HS.long, aes(x = date, y = percent.dw, fill = tissue.type)) + 
  geom_bar(position="fill", stat = "identity")
## Warning: Removed 26 rows containing missing values (position_stack).

http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/ colors: http://www.sthda.com/english/wiki/ggplot2-colors-how-to-change-colors-automatically-and-manually

Graph

HS.graph <-
  ggplot(data = HS.long,
         mapping = aes(x = date, y = percent.dw, fill = tissue.type)) + 
  geom_bar(position = "fill", stat = "identity") +
  scale_fill_manual(values=wes_palette(n=2, name="Moonrise1"))+
  scale_y_continuous(labels = scales::percent)+
  ggtitle("Horseshoe Bay") +
  scale_x_date(date_breaks = "2 month", 
               date_labels = "%b %Y") + 
  theme(plot.title = element_text(size = 20, face = "plain")) +
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )

BY.graph <-
  ggplot(data = BY.long,
         mapping = aes(x = date, 
                       y = percent.dw, 
                       fill=tissue.type)) + 
  geom_bar(position="fill",
           stat="identity") + 
  scale_fill_manual(values=wes_palette(n=2, name="Moonrise1"))+
  scale_y_continuous(labels = scales::percent)+
  ggtitle("Brickyard Park") +
  scale_x_date(date_breaks = "2 month", 
               date_labels = "%b %Y") + 
  theme(plot.title = element_text(size = 20, face = "plain"))+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )

ND.graph <-
  ggplot(data = ND.long,
         mapping = aes(x = date, 
                       y = percent.dw, 
                       fill=tissue.type)) + 
  geom_bar(position="fill",
           stat="identity") +
  scale_fill_manual(values=wes_palette(n=2, name="Moonrise1"))+ 
  scale_y_continuous(labels = scales::percent)+
  ggtitle("Point Chauncy") +
  scale_x_date(date_breaks = "2 month", 
               date_labels = "%b %Y") + 
  theme(plot.title = element_text(size = 20, face = "plain"))+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )

PC.graph <-
  ggplot(data = PC.long,
         mapping = aes(x = date, 
                       y = percent.dw, 
                       fill=tissue.type)) + 
  geom_bar(position="fill",
           stat="identity") +
  scale_fill_manual(values=wes_palette(n=2, name="Moonrise1"), 
                       name="Thalli Size",
                       breaks=c("PC.perc.rdw", "PC.perc.vdw"),
                       labels=c("Reproductive Dry Weight", "Vegetative Dry Weight"))+
  scale_y_continuous(labels = scales::percent)+
  ggtitle("Paradise Cay") +
  scale_x_date(date_breaks = "2 month", 
               date_labels = "%b %Y") + 
  theme(plot.title = element_text(size = 20, face = "plain"))+
  theme(
    legend.title = element_text(size = 15, face = "bold"),
              legend.position="bottom",
    axis.text.x = element_text(angle = 60, hjust = 1),
    axis.text = element_text(size = 20),
    axis.title = element_text(size = 20, face = "plain")
  ) + ylab(" ") + xlab(" ") + theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    axis.line = element_line(colour = "black")
  )

dw<-ggarrange(PC.graph, ND.graph, BY.graph, HS.graph, ncol = 4, nrow = 1, common.legend = TRUE)
## Warning: Removed 62 rows containing missing values (position_stack).

## Warning: Removed 62 rows containing missing values (position_stack).
## Warning: Removed 42 rows containing missing values (position_stack).
## Warning: Removed 22 rows containing missing values (position_stack).
## Warning: Removed 26 rows containing missing values (position_stack).
dw.fig <- annotate_figure(
  dw,
  left = text_grob(
    "Percent Dry Weight",
    color = "black",
    rot = 90,
    face="bold",
    size = 25
  )
)

dw.fig

I’m not sure if this is showing the data correctly. I may need to take the mean and then do this. No months and no sites ever had 100% vegetative tissue allocation