library(ggplot2) library(ggpubr) library(ggbiplot) ##Effect of environment variables to snail occurrence and abundance # Read plant and habitat data file "Additional File 4.csv" plant_habitat=read.csv(choose.files()) # Select and open Open Additional File 4.csv # subset habitat data topygraphy_habitat <- plant_habitat[,c(4:11)] # PCA analysis topygraphy_habitat.pca <- prcomp(topygraphy_habitat, center = TRUE,scale. = TRUE) summary(topygraphy_habitat.pca) ggbiplot(topygraphy_habitat.pca,choices=c(1,2), labels=plant_habitat[,1], groups = plant_habitat[,2],ellipse=TRUE, labels.size=3, varname.size=3, varname.adjust=1, obs.scale = 1, var.scale = 0) ggbiplot(topygraphy_habitat.pca,choices=c(2,3), labels=plant_habitat[,1], groups = plant_habitat[,2],ellipse=TRUE, labels.size=3, varname.size=3, varname.adjust=1, obs.scale = 1, var.scale = 0) ggbiplot(topygraphy_habitat.pca,choices=c(1,3), labels=plant_habitat[,1], groups = plant_habitat[,2],ellipse=TRUE, labels.size=3, varname.size=3, varname.adjust=1, obs.scale = 1, var.scale = 0) ### Microclimatic variables patterns in each plot Figure 4, 5 and 6 ## soil temperature # read data "day-soil summary data July only.csv" day.soil.summary.data.July.only=read.csv(choose.files()) # Select and Open Additional File 6.csv summary(day.soil.summary.data.July.only) tapply(day.soil.summary.data.July.only$Mean.soil.temperature.of.the.day, day.soil.summary.data.July.only$Site, mean) tapply(day.soil.summary.data.July.only$Maximum.soil.temperature.of.the.day, day.soil.summary.data.July.only$Site, mean) tapply(day.soil.summary.data.July.only$Mininum.soil.temperature.of.the.day, day.soil.summary.data.July.only$Site, mean) #create graph mean_soil<-ggplot(day.soil.summary.data.July.only, aes(Day, Mean.soil.temperature.of.the.day, colour=Site))+labs(title="A")+ facet_wrap(~Month) +geom_line(size=0.3) + geom_point(size=0.3) + ylim(21,37) + ylab('Mean Soil Temperature') max_soil<-ggplot(day.soil.summary.data.July.only, aes(Day, Maximum.soil.temperature.of.the.day, colour=Site))+labs(title="B")+ facet_wrap(~Month) +geom_line(size=0.3) + geom_point(size=0.3) + ylim(21,37) + ylab('Maximum Soil Temperature') min_soil<-ggplot(day.soil.summary.data.July.only, aes(Day, Mininum.soil.temperature.of.the.day, colour=Site))+labs(title="C")+ facet_wrap(~Month) +geom_line(size=0.3) + geom_point(size=0.3) + ylim(21,37) + ylab('Minimum Soil Temperature') #plot graph (6 in X 6 in) ggarrange(mean_soil, max_soil, #min_soil, ncol = 1, nrow = 2)#nrow = 3) mean_soil_inset<-ggplot(day.soil.summary.data.July.only, aes(Day, Mean.soil.temperature.of.the.day, colour=Site))+labs(title="A")+ facet_wrap(~Month) +geom_line(size=0.3)+ geom_line(aes(linetype=Site, colour=Site)) + geom_point(size=0.3) + scale_color_manual(values=c("blue","red","grey60","grey60","grey60","grey60")) + ylim(21,37) + ylab('Mean Soil Temperature') max_soil_inset <-ggplot(day.soil.summary.data.July.only, aes(Day, Maximum.soil.temperature.of.the.day, colour=Site))+labs(title="B")+ facet_wrap(~Month) +geom_line(size=0.3)+ geom_line(aes(linetype=Site, colour=Site)) + geom_point(size=0.3) + scale_color_manual(values=c("blue","red","grey60","grey60","grey60","grey60")) + ylim(21,37) + ylab('Maximum Soil Temperature') #plot graph (6 in X 6 in) Inset ggarrange(mean_soil_inset, max_soil_inset, #min_soil, ncol = 1, nrow = 2)#nrow = 3) ## temperature # read data "day-temp summary data July only.csv" day.temp.summary.data.July.only =read.csv(choose.files()) # Select and Open Additional File 6.csv #summary summary(day.temp.summary.data.July.only) tapply(day.temp.summary.data.July.only$Mean.air.temperature.of.the.day, day.temp.summary.data.July.only$Site, mean) tapply(day.temp.summary.data.July.only$Maximum.air.temperature.of.the.day, day.temp.summary.data.July.only$Site, mean) tapply(day.temp.summary.data.July.only$Mininum.air.temperature.of.the.day, day.temp.summary.data.July.only$Site, mean) #create graph mean_temp<-ggplot(day.temp.summary.data.July.only, aes(Day, Mean.air.temperature.of.the.day, colour=Site))+labs(title="A")+ facet_wrap(~Month) +geom_line(size=0.3) + geom_point(size=0.3) + ylim(21,37) + ylab('Mean Air Temperature') max_temp<-ggplot(day.temp.summary.data.July.only, aes(Day, Maximum.air.temperature.of.the.day, colour=Site))+labs(title="B")+ facet_wrap(~Month) +geom_line(size=0.3) + geom_point(size=0.3) + ylim(21,37) + ylab('Maximum Air Temperature') min_temp<-ggplot(day.temp.summary.data.July.only, aes(Day, Mininum.air.temperature.of.the.day, colour=Site))+labs(title="C")+ facet_wrap(~Month) +geom_line(size=0.2) + geom_point(size=0.3) + ylim(21,37) + ylab('Minimum Air Temperature') #plot graph (6 in X 6 in) ggarrange(mean_temp, max_temp, #min_temp, ncol = 1, nrow = 2)#nrow = 3) mean_temp_inset<-ggplot(day.temp.summary.data.July.only, aes(Day, Mean.air.temperature.of.the.day, colour=Site))+labs(title="A")+ facet_wrap(~Month) +geom_line(size=0.3)+ geom_line(aes(linetype=Site, colour=Site)) + geom_point(size=0.3) + scale_color_manual(values=c("blue","red","grey60","grey60","grey60","grey60","grey60","grey60")) + ylim(21,37) + ylab('Mean Air Temperature') max_temp_inset<-ggplot(day.temp.summary.data.July.only, aes(Day, Maximum.air.temperature.of.the.day, colour=Site))+labs(title="B")+ facet_wrap(~Month) +geom_line(size=0.3)+ geom_line(aes(linetype=Site, colour=Site)) + geom_point(size=0.3) + scale_color_manual(values=c("blue","red","grey60","grey60","grey60","grey60","grey60","grey60")) + ylim(21,37) + ylab('Maximum Air Temperature') #plot graph (6 in X 6 in) inset ggarrange(mean_temp_inset, max_temp_inset, #min_temp, ncol = 1, nrow = 2)#nrow = 3) ## Humidity # read data "day-humid summary data July only.csv" day.humid.summary.data.July.only=read.csv(choose.files()) # Select and Open Additional File 6.csv #summary summary(day.humid.summary.data.July.only) tapply(day.humid.summary.data.July.only$Mean.relative.humidity.of.the.day, day.humid.summary.data.July.only$Site, mean) tapply(day.humid.summary.data.July.only$Maximum.relative.humidity.of.the.day, day.humid.summary.data.July.only$Site, mean) tapply(day.humid.summary.data.July.only$Mininum.relative.humidity.of.the.day, day.humid.summary.data.July.only$Site, mean) #create graph mean_hum<-ggplot(day.humid.summary.data.July.only, aes(Day, Mean.relative.humidity.of.the.day, colour=Site))+labs(title="A")+ facet_wrap(~Month) +geom_line(size=0.3) + geom_point(size=0.3) + ylim(30,100) + ylab('Mean Air Humidity') max_hum<-ggplot(day.humid.summary.data.July.only, aes(Day, Maximum.relative.humidity.of.the.day, colour=Site))+labs(title="B")+ facet_wrap(~Month) +geom_line(size=0.3) + geom_point(size=0.3) + ylim(30,100) + ylab('Maximum Air Humidity') min_hum<-ggplot(day.humid.summary.data.July.only, aes(Day, Mininum.relative.humidity.of.the.day, colour=Site))+#labs(title="C")+ facet_wrap(~Month) +geom_line(size=0.3) + geom_point(size=0.3) + ylim(30,100) + ylab('Minimum Air Humidity') #plot graph (6 in X 6 in) ggarrange(mean_hum, max_hum, #min_hum, ncol = 1, nrow = 2)#nrow = 3) mean_hum_inset<-ggplot(day.humid.summary.data.July.only, aes(Day, Mean.relative.humidity.of.the.day, colour=Site))+labs(title="A")+ facet_wrap(~Month) +geom_line(size=0.3)+ geom_line(aes(linetype=Site, colour=Site)) + geom_point(size=0.3) + scale_color_manual(values=c("blue","grey60","grey60","grey60","grey60","grey60","grey60","grey60")) + ylim(30,100) + ylab('Mean Air Humidity') max_hum_inset<-ggplot(day.humid.summary.data.July.only, aes(Day, Maximum.relative.humidity.of.the.day, colour=Site))+labs(title="B")+ facet_wrap(~Month) +geom_line(size=0.3)+ geom_line(aes(linetype=Site, colour=Site)) + geom_point(size=0.3) + scale_color_manual(values=c("blue","grey60","grey60","grey60","grey60","grey60","grey60","grey60")) + ylim(30,100) + ylab('Maximum Air Humidity') #plot graph (6 in X 6 in) inset ggarrange(mean_hum_inset, max_hum_inset, #min_hum, ncol = 1, nrow = 2)#nrow = 3) ## temperature, Humidity, soil temperature of different time of days # read data "Climate time 2hr of the date.csv" time.temp.humid.doil.summary.data.July.only =read.csv(choose.files()) # Select and Open Additional File 6.csv #create graph mean_soil_time <-ggplot(time.temp.humid.doil.summary.data.July.only, aes(Time.of.the.Day, Mean.Soil.Temperature....C., colour=Plots))+labs(title="A")+ geom_point(size=0.75) + ylim(21,37) + ylab('Mean Soil Temperature')+ theme(axis.ticks.x = element_blank(), axis.text.x = element_blank(),axis.title.x=element_blank()) mean_temp_time <-ggplot(time.temp.humid.doil.summary.data.July.only, aes(Time.of.the.Day, Mean.Air.Temperature...C., colour=Plots))+labs(title="B")+ geom_point(size=0.75) + ylim(21,37) + ylab('Mean Air Temperature') + theme(axis.ticks.x = element_blank(), axis.text.x = element_blank(),axis.title.x=element_blank()) mean_hum_time <-ggplot(time.temp.humid.doil.summary.data.July.only, aes(Time.of.the.Day, Mean.Air.Humidity...., colour=Plots))+labs(title="C")+ geom_point(size=0.75) + ylim(30,100) + ylab('Mean Air Humidity')+ theme(axis.ticks.x = element_blank(), axis.text.x = element_blank(),axis.title.x=element_blank()) X_axis_lab <-ggplot(time.temp.humid.doil.summary.data.July.only, aes(Time.of.the.Day, Mean.Soil.Temperature....C., colour=Plots))+labs(title="C")+ geom_point(size=0.5) + ylim(21,37) + ylab('Mean Soil Temperature')+ xlab('Time of the Day') + theme(axis.text.x = element_text(angle=30, hjust=1)) #plot graph (8 in X 6 in) ggarrange(mean_soil_time, mean_temp_time, mean_hum_time, #min_temp, ncol = 1, nrow = 3) ## The correlation between the abundance of snails and the 4 plant species. # Read plant and habitat data file "Additional File 4.csv" snail_plant_habitat=read.csv(choose.files()) # Select and open Open Additional File 4.csv # subset snail data and the 4 plant species data snail_4_plants <- snail_plant_habitat[,c(3,15,16,22,30)] par(mfrow=c(2,2)) plot(snail_4_plants$Kibatalia.laurifolia,snail_4_plants$No.of.living.snails, xlab = expression(italic("Kibatalia laurifolia ") (abundance)),ylab=expression(italic("Pollicaria elephas ") (abundance)), pch = 16, col="grey1", xlim=c(0,8)) plot(snail_4_plants$Croton.cascarilloides,snail_4_plants$No.of.living.snails, xlab = expression(italic("Croton cascarilloides ") (abundance)),ylab=expression(italic("Pollicaria elephas ") (abundance)), pch = 16, col="grey1", xlim=c(0,8)) plot(snail_4_plants$Mallotus.peltatus,snail_4_plants$No.of.living.snails, xlab = expression(italic("Mallotus peltatus ") (abundance)),ylab=expression(italic("Pollicaria elephas ") (abundance)), pch = 16, col="grey1", xlim=c(0,8)) plot(snail_4_plants$Diospyros.toposia.var..toposoides,snail_4_plants$No.of.living.snails, xlab = expression(italic("Diospyros toposia")~"var"~italic("toposoides ")~(abundance)),ylab=expression(italic("Pollicaria elephas ") (abundance)), pch = 16, col="grey1", xlim=c(0,8))