# ------------------------------------------------------- # Script 4 # # Section "Supra-annual fluctuations in pollinator composition" # ------------------------------------------------------- # This script runs with the following versions of # required packages. May not work with later versions. require(ggplot2); # ver. 3.0.0 require(dplyr); # ver. 0.7.6 require(lubridate); # ver. 1.7.4 mytheme <- theme_bw(22) + theme(legend.position="none", legend.key = element_blank(), strip.background = element_blank(), panel.grid = element_blank(), panel.border= element_rect(size=rel(2.5),color='black'), strip.text.x=element_text(vjust = 1)) # FIG. 6 --------------- # Frequency distribution number of fluctuating orders (read.table("Table.S1.Appendix.S5.txt", header=TRUE, sep='\t') %>% select(signif.orders) %>% table()) ; # output from Script 1 (read.table("Table.S2.Appendix.S5.txt", header=TRUE, sep='\t') %>% select(signif.orders) %>% table()) ; # output from Script 2 patch <- c(21,26,14,4,0) flowers <- c(3,16,22,20,4) datos <- data.frame(speciesnum=c(patch,flowers), orders=rep(0:4, times=2), measurement=c(rep('Patch visitation',5), rep('Flower visitation',5))) %>% mutate(measurement = factor(measurement, levels = rev(levels(measurement)))) f <- ggplot(datos, aes(x=orders, y=speciesnum, fill=measurement))+ geom_col(position="dodge", width=0.6) + scale_fill_manual(values=c("grey70", "black")) + theme_bw(18) + mytheme + theme(legend.position = 'top') f <- f + labs(x='Number of fluctuating orders', y='Number of plant species', fill=NULL) + theme(panel.border = element_rect(fill=NA, colour = "black", size=2)) + theme(legend.key.height=unit(2,"line")) print(f) # uncomment to save figure in pdf file # ggsave("Fig.6.Freq.Distrib.Fluctuating.Orders.pdf", width=8, height=8) rm(f,datos, patch, flowers) # EUCLIDEAN DISTANCES ANALYSES ------------------ # patch visitation ---- load("patch.visitation.by.order.RObj") ; # output from Script 1 cc <- ungroup(patchvisit.col) %>% select(especie, patchvisit) %>% rename(col_flower = patchvisit) dd <- ungroup(patchvisit.dip) %>% select(especie, patchvisit) %>% rename(dip_flower = patchvisit) hh <- ungroup(patchvisit.hym) %>% select(especie, patchvisit) %>% rename(hym_flower = patchvisit) ll <- ungroup(patchvisit.lep) %>% select(especie, patchvisit) %>% rename(lep_flower = patchvisit) euclid.patch <- bind_cols(cc,dd,hh,ll) %>% select(especie, col_flower, dip_flower, hym_flower, lep_flower) %>% group_by(especie) rm(cc,dd,hh,ll) euclid.patch <- summarize(euclid.patch, mean.euclid.patch = mean(dist(c(col_flower,dip_flower, hym_flower, lep_flower)))) # flower visitation ---- load("flower.visitation.by.order.RObj"); # output from Script 2 cc <- ungroup(flowervisit.col) %>% select(especie, flowervisit) %>% rename(col_flower = flowervisit) dd <- ungroup(flowervisit.dip) %>% select(especie, flowervisit) %>% rename(dip_flower = flowervisit) hh <- ungroup(flowervisit.hym) %>% select(especie, flowervisit) %>% rename(hym_flower = flowervisit) ll <- ungroup(flowervisit.lep) %>% select(especie, flowervisit) %>% rename(lep_flower = flowervisit) euclid.flower <- bind_cols(cc,dd,hh,ll) %>% select(especie, col_flower, dip_flower, hym_flower, lep_flower) %>% group_by(especie) rm(cc,dd,hh,ll) euclid.flower <- summarize(euclid.flower, mean.euclid.flower = mean(dist(c(col_flower,dip_flower, hym_flower, lep_flower)))) # merge patch & flower euclidean distance data euclid.all <- data.frame(full_join(euclid.patch, euclid.flower, by = "especie")) # write.table(format(euclid.all, digits=2), file="Table.S3.Appendix.S5.txt",quote = FALSE, sep='\t',row.names = FALSE) # ------------- # Info especies especies.data <- read.csv("Species.data.csv") %>% select(-X) # Days from 1 Jan diamedio <- read.csv("working.dataset.csv", stringsAsFactors = FALSE) %>% mutate(dayofyear = yday(fecha)) %>% group_by(especie,sitio,fecha,censo.num) %>% summarize(diamedio = mean(dayofyear)) %>% group_by(especie) %>% summarize(diamedio = mean(diamedio)) %>% select(diamedio) # Supra-annual span interval <- read.csv("working.dataset.csv", stringsAsFactors = FALSE) %>% group_by(especie) %>% summarize(interval=max(ano)-min(ano)) %>% select(interval) # Number sampling dates numdates <- read.csv("working.dataset.csv", stringsAsFactors = FALSE) %>% group_by(especie) %>% summarize (dates = length(unique(fecha))) %>% select(dates) all.variation <- bind_cols(especies.data, diamedio, interval, numdates, select(euclid.all, -especie)) # tests ------- with(all.variation, cor.test(mean.euclid.patch, interval, method='spearman')) with(all.variation, cor.test(mean.euclid.flower, interval, method='spearman')) with(all.variation, cor.test(mean.euclid.patch, dates, method='spearman')) with(all.variation, cor.test(mean.euclid.flower, dates, method='spearman')) with(all.variation, cor.test(mean.euclid.patch, elevation, method='spearman')) with(all.variation, cor.test(mean.euclid.flower, elevation, method='spearman')) with(all.variation, cor.test(mean.euclid.patch, diamedio, method='spearman')) with(all.variation, cor.test(mean.euclid.flower, diamedio, method='spearman')) with(all.variation, kruskal.test(mean.euclid.patch ~ life.form)) with(all.variation, kruskal.test(mean.euclid.flower ~ life.form)) with(all.variation, kruskal.test(mean.euclid.patch ~ corola)) with(all.variation, kruskal.test(mean.euclid.flower ~ corola)) # FIG. 7 ----------------- zz1 <- all.variation %>% select(mean.euclid.patch, diamedio) %>% rename(euclid=mean.euclid.patch) %>% mutate(class='Patch visitation') zz2 <- all.variation %>% select(mean.euclid.flower, diamedio) %>% rename(euclid=mean.euclid.flower) %>% mutate(class='Flower visitation') zzz <- bind_rows(zz1,zz2) %>% mutate(class=factor(class)) zzz$class <- factor(zzz$class,levels(zzz$class)[c(2,1)]) f1 <- ggplot(zzz, aes(x=diamedio, y=euclid)) + stat_smooth(method = "lm", se=FALSE, color="black", size=1.5) + geom_point(shape=21, size=3.5) + mytheme + facet_wrap(~class, scales = "free") f1 <- f1 + labs(x="Mean pollinator census date\n(days from 1 January)", y = "Supra-annual dissimilarity\n(Euclidean distance)") print(f1) # uncomment to save figure in pdf file # ggsave("Fig.7.Dissimilarity.Euclidean.distance.pdf", width = 9, height=6) # uncomment to clean up working environment # rm(list=(ls(pattern="^patchvisit"))) # rm(list=(ls(pattern="^flowervisit"))) # rm(list=(ls(pattern="^euclid"))) # rm(f1, interval, diamedio, especies.data, all.variation) # rm(list=(ls(pattern="^zz")))