#### Scaling trend-veg data for plotting ---- trend_ob <- as.data.frame(daf_stl_ob$data$trend) names(trend_ob)[1]<-"trend" trend_ob$site<- "oli_bal" trends<-do.call(rbind, lapply(ls(patt="trend_"), get)) write.csv(trendveg, "trendveg.csv", row.names = F) #Added months + Year in ecel from allsites.csv trends <- cbind(trends, allsites) trends <- trends[c(3,4,5,1)] #add veg to trends trendveg <- full_join(trends, veg) trendveg <- trendveg[c(1,7,2,3,4,8)] plot(trendveg$date, trendveg$trend) #complete date column trendveg$Date <- NULL trendveg$day <- 1 for(i in 1:nrow(trendveg)){ if(nchar(trendveg$month[i])==1){ trendveg$Date[i] <- paste(trendveg$year[i],trendveg$month[i],trendveg$day[i], sep="-0") }else{ trendveg$Date[i] <- paste(trendveg$year[i],trendveg$month[i],trendveg$day[i], sep="-") } } trendveg$Date <- ymd(trendveg$Date) trendveg$date <- ymd(trendveg$date) trendveg$date <- as.numeric(trendveg$date) trendveg$date <- (ifelse(is.na(trendveg$date), trendveg$Date, trendveg$date)) trendveg$date <- as.Date(trendveg$date) # All dates made to 1st of month #Add rainfall data trendrain$date <- NULL trendrain$day <- 1 for(i in 1:nrow(trendrain)){ if(nchar(trendrain$month[i])==1){ trendrain$date[i] <- paste(trendrain$year[i],trendrain$month[i],trendrain$day[i], sep="-0") }else{ trendrain$date[i] <- paste(trendrain$year[i],trendrain$month[i],trendrain$day[i], sep="-") } } trendrain$date <- ymd(trendrain$date) trendveg$Date <- NULL alltrend<- full_join(trendrain, trendveg) names(alltrend) [6] <- "flowtrend" #### Scale flow trend and veg cov date per site ---- alltrend <- alltrend %>% group_by(site) %>% mutate(raintrend = scale(raintrend, center = T, scale = T), flowtrend = scale(flowtrend, center = T, scale = TRUE), vegcovprop = scale(vegcovprop, center = T, scale = T)) #rainplot <- alltrend %>% dplyr::select(date, site, rain, trend) %>% filter(site != "oli_bal" & site != "cro_ten" & site != "let_bhd" & site != "nsi_nsi" & !is.na(trend)) alltrend <- alltrend[c(2,3,4,5,8,7,6,1)] # plot scaled data str(alltrend) alltrend$site <- gsub("_", " ", alltrend$site) %>% str_cap_words() %>% substr(1,4) alltrend <- (alltrend[order(alltrend$site, alltrend$date),]) library(tidyquant) trends <- alltrend %>% filter(site != "OliB" & site != "CroT" & !is.na(raintrend)) %>% #filter out sites with lowest flow data quality and #gather(key,value, flowtrend, vegcovprop, raintrend) %>% ggplot(aes(x=date)) + geom_ma(aes(y=raintrend, colour = "1"), ma_fun = SMA, n=30, size=2, linetype = 'solid', na.rm = F) + geom_ma(aes(y=flowtrend, colour ="2"), ma_fun = SMA, n = 30, size=2, linetype = "solid", na.rm = F) + geom_smooth(aes(y=vegcovprop, colour = "3"), method = 'loess', se = F, linetype = "solid", size =2, na.rm = T) + geom_point(aes(y=vegcovprop, colour = "4"), size = 3.8, stroke = 2, show.legend = T, shape=23, fill="springgreen1", color="seagreen4") + #geom_smooth(data=rainplot, aes(x=date, y=rain), colour = "blue", method = 'loess', formula = y~x, color='#349fc5', na.rm=TRUE, se = FALSE, linetype = "longdash", size = 0.8) + #geom_hline(yintercept=0, linetype=2, colour = "grey") + theme_classic() + # ylim(-2, 2) + theme( axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), axis.title.x = element_text(margin = margin(t = 8, r = 0, b = 0, l = 0), face = "bold", size = 24), legend.title = element_blank(), legend.text = element_text(size = 24), axis.line = element_line(colour = "black"), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank(), legend.key.size = unit(4, "lines"), strip.text = element_text(size = 19, angle = 00, face = "bold"), axis.text.x=element_text(size=16, colour = "black"), strip.background = element_rect(colour = "black", fill = "#D7D7D7"), panel.spacing = unit(2, "lines"), plot.margin = unit(c(0.5,0.5,0.5,0.5), "cm"), panel.border = element_rect(colour = "black", fill=NA, size=1)) + labs(x = "Date") + #theme(axis.line = element_line(colour = "black"), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank()) + scale_colour_manual(name="Legend", guide = 'legend', values =c("1" ="coral1", "2" = "#3399CC", "3" ="seagreen4", "4" = "springgreen1"), labels=c("Rainfall", "Flow", "Tree cover\n(with loess\nregression\nline)", "Tree cover")) + facet_wrap(~site, nrow = 4,scales = "free") #warnings() ggsave(filename='Fig 5. Scaled trends of variables.png', plot=trends, dpi=700, height=45, width=40, units='cm') #### Trends from variable table ---- #scaling first for graphing purposes #dvcscaled <- scale(dvc[,9:30]) dvcs <- dvc %>% group_by(site) %>% mutate(ave_flow_per_d = scale(ave_flow_per_d, center = T, scale = T), mean_deseas_f = scale(mean_deseas_f, center = T, scale = T), cum_flow = scale(cum_flow, center = T, scale = T), meanTop10pct = scale(meanTop10pct, center = T, scale = T), meanBot10pct = scale(meanBot10pct, center = T, scale = T), maxpeak = scale(maxpeak, center = T, scale = T), flowvar = scale(flowvar, center = T, scale = T), flowCV = scale(flowCV, center = T, scale = T), flood = scale(flood, center = T, scale = T), drought = scale(drought, center = T, scale = T), meanrain = scale(meanrain, center = T, scale = T), totrain = scale(totrain, center = T, scale = T), rainCV = scale(rainCV, center = T, scale = T), maxrain = scale(maxrain, center = T, scale = T), meanwinrain = scale(meanwinrain, center = T, scale = T), meansumrain = scale(meansumrain, center = T, scale = T), date_diff = scale(date_diff, center = F, scale = F), vegcovprop = scale(vegcovprop, center = T, scale = T), vegcovprop_diff = scale(vegcovprop_diff, center = T, scale = T), veg_prop_change = scale(veg_prop_change, center = T, scale = T), vegchange_p_y = scale(vegchange_p_y, center = T, scale = T), diff_sq = scale(diff_sq, center = T, scale = T)) library(lettercase) dvcs$site <- gsub("_", " ", dvcs$site) %>% str_cap_words() %>% substr(1,4) #add mid-point of period dvcs$date <- ymd(dvcs$date) dvcs$middate <- ymd(dvcs$middate) #mid-date done manually in excel, tried in loop but false values. #PLOTs ! #FLOW flowvars <- dvcs %>% filter(site != "OliB" & site != "CroT" & !is.na(ave_flow_per_d)) %>% ggplot(aes(x=middate, width=date_diff)) + geom_hline(yintercept=0) + geom_col(aes(y=veg_prop_change, fill="Proportional Tree\ncover change"), colour = "black") + geom_point(aes(y=flowCV, color='4', shape= "4"), size =3.5,na.rm = T, show.legend = T) + geom_point(aes(y=maxpeak, color='3', shape="3"), size =3.5,na.rm = T, show.legend = T) + geom_point(aes(y=cum_flow, color="2", shape="2"), size =3.5,na.rm = T, show.legend = T) + geom_point(aes(y=ave_flow_per_d, color="1",shape="1"), size =3.5, na.rm = T, show.legend = T) + #geom_point(aes(y=flood, color="5", shape="5"), size =3, na.rm = T, show.legend = T) + #geom_point(aes(y=drought, color="6", shape="6"), size =3, na.rm = T) + #geom_smooth(data=rainplot, aes(x=date, y=rain), colour = "blue", method = 'loess', formula = y~x, color='#349fc5', na.rm=TRUE, se = FALSE, linetype = "longdash", size = 0.8) + theme_classic() + # ylim(-2, 2) + theme(axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), axis.title.x = element_text(margin = margin(t = 8, r = 0, b = 0, l = 0), face = "bold", size = 24), legend.title = element_blank(), legend.text = element_text(size = 18), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank(), legend.key.size = unit(3, "lines"), strip.text = element_text(size = 19, angle = 00, face = "bold"), axis.text.x = element_text(colour = "black", size = 10), strip.background = element_rect(colour = "black", fill = "#D7D7D7"), panel.spacing = unit(2, "lines"), plot.margin = unit(c(0.5,0.5,0.5,0.5), "cm"), panel.border = element_rect(colour = "black", fill=NA, size=1), axis.line = element_line(colour = "black")) + #scale_y_continuous(limits =c(-2.6,2.6))+ labs(x = "Time periods", shape=NULL) + scale_colour_manual(name="Legend", guide = 'legend', values = c("1"="#3399CC", "2"="grey1", "3" ="firebrick1", "4"="#00FF7F", "5"="darkgreen", "6"="navajowhite2"), labels=c("Mean daily flow", "Cumulative flow", "Maximum flow\nrecorded", "Flow CV", "High flow events", "Low flow days")) + scale_shape_manual(name="Legend", guide = 'legend', values = c("1"=15, "2"=19, "3" =17, "4"=18, "5"=17, "6"=20), labels=c("Mean daily flow", "Cumulative flow", "Maximum flow\nrecorded", "Flow CV", "High flow events", "Low flow days")) + scale_fill_manual(values=c("Proportional Tree\ncover change"="grey91")) + guides(shape = guide_legend(override.aes = list(size = 6))) + facet_wrap(~site, nrow = 5,scales = "free") ggsave(filename='Flow vars.png', plot=flowvars, dpi=700, height=30, width=40, units='cm') #RAINFALL rainvars <- dvcs %>% filter(site != "CroT" & !is.na(meanrain)) %>% ggplot(aes(x=middate, width=date_diff)) + geom_hline(yintercept=0) + geom_col(aes(y=veg_prop_change, fill="Proportional tree\ncover change"), width=0.8, colour = "black") + geom_point(aes(y=rainCV, color='4', shape= "4"), size =3.5,na.rm = T, show.legend = T) + geom_point(aes(y=maxrain, color='3', shape="3"), size =3.5,na.rm = T, show.legend = T) + geom_point(aes(y=totrain, color="2", shape="2"), size =3.5,na.rm = T, show.legend = T) + geom_point(aes(y=meanrain, color="1",shape="1"), size =3.5, na.rm = T, show.legend = T) + #geom_point(aes(y=flood, color="5", shape="5"), size =3, na.rm = T, show.legend = T) + #geom_point(aes(y=drought, color="6", shape="6"), size =3, na.rm = T) + #geom_smooth(data=rainplot, aes(x=date, y=rain), colour = "blue", method = 'loess', formula = y~x, color='#349fc5', na.rm=TRUE, se = FALSE, linetype = "longdash", size = 0.8) + theme_classic() + # ylim(-2, 2) + theme(axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), axis.title.x = element_text(margin = margin(t = 8, r = 0, b = 0, l = 0), face = "bold", size = 24), legend.title = element_blank(), legend.text = element_text(size = 18), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank(), legend.key.size = unit(3, "lines"), strip.text = element_text(size = 19, angle = 00, face = "bold"), axis.text.x = element_text(colour = "black", size = 10), strip.background = element_rect(colour = "black", fill = "#D7D7D7"), panel.spacing = unit(2, "lines"), plot.margin = unit(c(0.5,0.5,0.5,0.5), "cm"), panel.border = element_rect(colour = "black", fill=NA, size=1), axis.line = element_line(colour = "black")) + scale_y_continuous(limits =c(-2,2))+ labs(x = "Time periods", shape=NULL) + scale_colour_manual(name="Legend", guide = 'legend', values = c("1"="#3399CC", "2"="grey1", "3" ="firebrick1", "4"="#00FF7F", "5"="darkgreen", "6"="navajowhite2"), labels=c("Mean monthly\nrainfall", "Cumulative\nrainfall", "Maximum monthly\nrainfall recorded", "Rainfall CV")) + scale_shape_manual(name="Legend", guide = 'legend', values = c("1"=15, "2"=19, "3" =17, "4"=18), labels=c("Mean monthly\nrainfall", "Cumulative\nrainfall", "Maximum monthly\nrainfall recorded", "Rainfall CV")) + scale_fill_manual(values=c("Proportional tree\ncover change"="grey91")) + guides(shape = guide_legend(override.aes = list(size = 6))) + facet_wrap(~site, nrow = 5,scales = "free") ggsave(filename='Rain varsT.png', plot=rainvars, dpi=700, height=35, width=40, units='cm') #Drought/flood and meansum/win rainfall season <- dvcs %>% filter(site != "CroT" & !is.na(meanrain)) %>% ggplot(aes(x=middate, width=date_diff, group=1)) + geom_hline(yintercept=0) + geom_col(aes(y=veg_prop_change, fill="Proportional Tree\ncover change"), width=0.8, colour = "black") + #geom_point(aes(y=flood, color="4", shape= "4"), size =3.5,na.rm = T, show.legend = T) + #geom_point(aes(y=drought, color="3", shape="3"), size =3.5,na.rm = T, show.legend = T) + geom_point(aes(y=meansumrain, color="2", shape="2"), size =5,na.rm = T, show.legend = T) + geom_point(aes(y=meanwinrain, color="1",shape="1"), size =3.5, na.rm = T, show.legend = T) + geom_line(aes(y=meansumrain, color ="2"), lty=1, size=1) + geom_line(aes(y=meanwinrain, color ="1"), lty=1, size=1) + #geom_point(aes(y=flood, color="5", shape="5"), size =3, na.rm = T, show.legend = T) + #geom_point(aes(y=drought, color="6", shape="6"), size =3, na.rm = T) + #geom_smooth(data=rainplot, aes(x=date, y=rain), colour = "blue", method = 'loess', formula = y~x, color='#349fc5', na.rm=TRUE, se = FALSE, linetype = "longdash", size = 0.8) + theme_classic() + # ylim(-2, 2) + theme(axis.text.x = element_text(colour = "black", size = 12), axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), axis.title.x = element_text(margin = margin(t = 8, r = 0, b = 0, l = 0), face = "bold", size = 24), legend.title = element_blank(), legend.text = element_text(size = 18), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank(), legend.key.size = unit(3, "lines"), strip.text = element_text(size = 19, angle = 00, face = "bold"), strip.background = element_rect(colour = "black", fill = "#D7D7D7"), panel.spacing = unit(2, "lines"), plot.margin = unit(c(0.5,0.5,0.5,0.5), "cm"), panel.border = element_rect(colour = "black", fill=NA, size=1), axis.line = element_line(colour = "black")) + #scale_y_continuous(limits =c(-2.6,2.6))+ labs(x = "Time periods", shape=NULL) + scale_colour_manual(name="Legend", guide = 'legend', values = c("1"="springgreen", "2"="#3399CC", "3" ="darkgreen", "4"="#3399CC", "5"="darkgreen", "6"="navajowhite2"), labels=c("Mean annual\nsummer rainfall", "Mean annual\nwinter rainfall")) + scale_shape_manual(name="Legend", guide = 'legend', values = c("1"=15, "2"=18, "3" =19, "4"=19, "5"=17, "6"=20), labels=c("Mean annual\nsummer rainfall", "Mean annual\nwinter rainfall")) + scale_fill_manual(values=c("Proportional Tree\ncover change"="grey91")) + guides(shape = guide_legend(override.aes = list(size = 2))) + facet_wrap(~site, nrow = 5,scales = "free") ggsave(filename='seasonal vars.png', plot=season, dpi=700, height=35, width=40, units='cm') droughtflood <- dvcs %>% filter(site != "CroT" & site != "OliB" & !is.na(ave_flow_per_d)) %>% ggplot(aes(x=middate, width=date_diff, group=1)) + geom_hline(yintercept=0) + geom_col(aes(y=veg_prop_change, fill="Proportional Tree\ncover change"), width=0.8, colour = "black") + #geom_point(aes(y=flood, color="4", shape= "4"), size =3.5,na.rm = T, show.legend = T) + #geom_point(aes(y=drought, color="3", shape="3"), size =3.5,na.rm = T, show.legend = T) + geom_point(aes(y=drought, color="2", shape="2"), size =5,na.rm = T, show.legend = T) + geom_point(aes(y=flood, color="1",shape="1"), size =3.5, na.rm = T, show.legend = T) + geom_line(aes(y=drought, color ="2"), lty=1, size=1) + geom_line(aes(y=flood, color ="1"), lty=1, size=1) + #geom_point(aes(y=flood, color="5", shape="5"), size =3, na.rm = T, show.legend = T) + #geom_point(aes(y=drought, color="6", shape="6"), size =3, na.rm = T) + #geom_smooth(data=rainplot, aes(x=date, y=rain), colour = "blue", method = 'loess', formula = y~x, color='#349fc5', na.rm=TRUE, se = FALSE, linetype = "longdash", size = 0.8) + theme_classic() + # ylim(-2, 2) + theme(axis.text.x = element_text(colour = "black", size = 12), axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), axis.title.x = element_text(margin = margin(t = 8, r = 0, b = 0, l = 0), face = "bold", size = 24), legend.title = element_blank(), legend.text = element_text(size = 18), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank(), legend.key.size = unit(3, "lines"), strip.text = element_text(size = 19, angle = 00, face = "bold"), strip.background = element_rect(colour = "black", fill = "#D7D7D7"), panel.spacing = unit(2, "lines"), plot.margin = unit(c(0.5,0.5,0.5,0.5), "cm"), panel.border = element_rect(colour = "black", fill=NA, size=1), axis.line = element_line(colour = "black")) + #scale_y_continuous(limits =c(-2.6,2.6))+ labs(x = "Time periods", shape=NULL) + scale_colour_manual(name="Legend", guide = 'legend', values = c("2"="#FF7256", "1"="#3399CC", "3" ="darkgreen", "4"="#3399CC", "5"="darkgreen", "6"="navajowhite2"), labels=c("Number of high-flow\ndays per year", "Number of low-flow\ndays per year")) + scale_shape_manual(name="Legend", guide = 'legend', values = c("1"=15, "2"=18, "3" =19, "4"=19, "5"=17, "6"=20), labels=c("Number of high-flow\ndays per year", "Number of low-flow\ndays per year")) + scale_fill_manual(values=c("Proportional Tree\ncover change"="grey91")) + guides(shape = guide_legend(override.aes = list(size = 2))) + facet_wrap(~site, nrow = 4,scales = "free") ggsave(filename='droughtflood.png', plot=droughtflood, dpi=700, height=35, width=40, units='cm')