######################################################################################################### ######################################################################################################### ################# Log file and full codes for analyses contained in the paper ############### ################# Romandini et. al.'Macromammal and bird assemblages across ############### ################# the Late Middle to Upper Palaeolithic transition in Italy: ############### ################# an extended zooarchaeological review ############### ################# ############### ################# submitted to Quaternary International ############### ################# v. 2.01 ############## ################# July 20, 2019 ############### ################# author: Eugenio Bortolini ############### ################# eugenio.bortolini2@unibo.it ############## ######################################################################################################### ######################################################################################################### #################### #----------------## NORTHERN ITALY ##-----------------# #################### # using R version 3.4.2 #install.packages("archSeries") library(archSeries) #version 0.0.0.9003 save.image("Romandini_MPUP.RData") ### IMPORT DATA ON FAUNA == COUNTS FOR EACH LAYER ## ##################################################### ungulates<-read.table("Ungulates.csv",header=T,row.names=1, sep=",") carnivores<-read.table("Carnivores.csv",header=T,row.names=1, sep=",") birds_eco<-read.table("birds_eco.csv",header=T,row.names=1, sep=",") ## TURN INTO BP DATES ## ######################## ungulates$start=-ungulates$start ungulates$end=-ungulates$end carnivores$start=-carnivores$start carnivores$end=-carnivores$end ###################### ## GROTTA DI FUMANE ## ###################### ungulates_fumane<-data.table(ID=rownames(ungulates[1:6,]),ungulates[1:6,]) # create data.table for fumane ungulaes carnivores_fumane<-data.table(ID=rownames(carnivores[1:6,]),carnivores[1:6,]) # create data.table for fumane carnivores birdseco_fumane<-data.table(ID=rownames(birds_eco[1:6,]),ungulates_fumane[,2:5],birds_eco[1:6,]) # create data.table for fumane birds ## AORISTIC SUMS WITH 500-YR BINS AND RELATIVE FREQUENCIES BY TAXON ## ###################################################################### #ungulates #Fumane_ungulates_aorsum<-aorist(data.table(Start=ungulates_fumane$start,End=ungulates_fumane$end), ungulates_fumane[,6],bin.width=500) #compute aorist sum for each taxon #for(i in 7:23){ #Fumane_ungulates_aorsum<-cbind(Fumane_ungulates_aorsum, aorist(data.table(Start=ungulates_fumane$start,End=ungulates_fumane$end), ungulates_fumane[,..i],bin.width=500)[,3]) #} dtung<-data.table(Start=ungulates_fumane$start,End=ungulates_fumane$end, FRAG_COUNT=ungulates_fumane[,6]) Fumane_ungulates_aorsum<-aorist(dtung, weight=dtung$FRAG_COUNT, bin.width=500) #compute aorist sum for each taxon a<-data.table() for(i in 7:23){ a<-data.table(Start=ungulates_fumane$start,End=ungulates_fumane$end, FRAG_COUNT=ungulates_fumane[,..i]) Fumane_ungulates_aorsum<-cbind(Fumane_ungulates_aorsum, aorist(a, a$FRAG_COUNT, bin.width=500)[,3]) } colnames(Fumane_ungulates_aorsum)<-c(colnames(Fumane_ungulates_aorsum[,1:2]),colnames(ungulates_fumane[,6:23])) # change aorist colnames Fumane_ungulates_aor_relfreqs<-cbind(Fumane_ungulates_aorsum[,1:2],Fumane_ungulates_aorsum[,3:20]/rowSums(Fumane_ungulates_aorsum[,3:20])) # calculate relative freqs based on aoristic sum #carnivores dtcarn<-data.table(Start=carnivores_fumane$start,End=carnivores_fumane$end, FRAG_COUNT=carnivores_fumane[,6]) Fumane_carnivores_aorsum<-aorist(dtcarn, weight=dtcarn$FRAG_COUNT, bin.width=500) #compute aorist sum for each taxon a<-data.table() for(i in 7:26){ a<-data.table(Start=carnivores_fumane$start,End=carnivores_fumane$end, FRAG_COUNT=carnivores_fumane[,..i]) Fumane_carnivores_aorsum<-cbind(Fumane_carnivores_aorsum, aorist(a, a$FRAG_COUNT, bin.width=500)[,3]) } colnames(Fumane_carnivores_aorsum)<-c(colnames(Fumane_carnivores_aorsum[,1:2]),colnames(carnivores_fumane[,6:26])) # change aorist colnames Fumane_carnivores_aor_relfreqs<-cbind(Fumane_carnivores_aorsum[,1:2],Fumane_carnivores_aorsum[,3:23]/rowSums(Fumane_carnivores_aorsum[,3:23])) # calculate relative freqs based on aoristic sum # birds ecozones dtbird<-data.table(Start=birdseco_fumane$start,End= birdseco_fumane$end, FRAG_COUNT=birdseco_fumane[,6]) Fumane_birdseco_aorsum<-aorist(dtbird, weight=dtbird$FRAG_COUNT, bin.width=500) #compute aorist sum for each taxon a<-data.table() for(i in 7:9){ a<-data.table(Start= birdseco_fumane$start,End= birdseco_fumane$end, FRAG_COUNT= birdseco_fumane[,..i]) Fumane_birdseco_aorsum <-cbind(Fumane_birdseco_aorsum, aorist(a, a$FRAG_COUNT, bin.width=500)[,3]) } colnames(Fumane_birdseco_aorsum)<-c(colnames(Fumane_birdseco_aorsum[,1:2]),colnames(birdseco_fumane[,6:9])) # change aorist colnames Fumane_birdseco_aor_relfreqs<-cbind(Fumane_birdseco_aorsum[,1:2],Fumane_birdseco_aorsum[,3:6]/rowSums(Fumane_birdseco_aorsum[,3:6])) # calculate relative freqs based on aoristic sum ## SUM TAXA INTO FAMILIES/SUBFAMILIES FOR ADDITIONAL ANALYSES ## ################################################################ # SUM UNGULATES INTO: CAPRINAE, BOVINAE, CERVIDAE, RHINOCEROTIDAE, EQUIDS, SUS, BISON PRISCUS, ALCES F_Caprinae_dt<-data.table(ID=ungulates_fumane$ID,Start=ungulates_fumane$start,End=ungulates_fumane$end,FRAG_COUNT=rowSums(ungulates_fumane[,21:23])) F_Rhinocerotidae_dt<-data.table(ID=ungulates_fumane$ID,Start=ungulates_fumane$start,End=ungulates_fumane$end,FRAG_COUNT=rowSums(ungulates_fumane[,6:8])) F_Sus_dt<-data.table(ID=ungulates_fumane$ID,Start=ungulates_fumane$start,End=ungulates_fumane$end,FRAG_COUNT=rowSums(ungulates_fumane[,9])) F_Cervidae_dt<-data.table(ID=ungulates_fumane$ID,Start=ungulates_fumane$start,End=ungulates_fumane$end,FRAG_COUNT=rowSums(ungulates_fumane[,c(10:13,17)])) F_Alces_dt<-data.table(ID=ungulates_fumane$ID,Start=ungulates_fumane$start,End=ungulates_fumane$end,FRAG_COUNT=rowSums(ungulates_fumane[,14:16])) F_Bovinae_dt<-data.table(ID=ungulates_fumane$ID,Start=ungulates_fumane$start,End=ungulates_fumane$end,FRAG_COUNT=rowSums(ungulates_fumane[,c(18,20)])) F_Bison.priscus_dt<-data.table(ID=ungulates_fumane$ID,Start=ungulates_fumane$start,End=ungulates_fumane$end,FRAG_COUNT=rowSums(ungulates_fumane[,19])) # SUM CARNIVORES INTO: URSIDAE, CANIDES, MUSTELIDAE, PANTHERA PARDUS, CROCUTA, GULO F_Canidae_dt<-data.table(ID=carnivores_fumane$ID,Start=carnivores_fumane$start,End=carnivores_fumane$end,FRAG_COUNT=rowSums(carnivores_fumane[,6:9])) F_Ursidae_dt<-data.table(ID=carnivores_fumane$ID,Start=carnivores_fumane$start,End=carnivores_fumane$end,FRAG_COUNT=rowSums(carnivores_fumane[,10:12])) F_Mustelidae_dt<-data.table(ID=carnivores_fumane$ID,Start=carnivores_fumane$start,End=carnivores_fumane$end,FRAG_COUNT=rowSums(carnivores_fumane[,c(13:18,20)])) F_Gulo_dt<-data.table(ID=carnivores_fumane$ID,Start=carnivores_fumane$start,End=carnivores_fumane$end,FRAG_COUNT=rowSums(carnivores_fumane[,19])) F_Crocuta_dt<-data.table(ID=carnivores_fumane$ID,Start=carnivores_fumane$start,End=carnivores_fumane$end,FRAG_COUNT=rowSums(carnivores_fumane[,21])) F_Felidae_dt<-data.table(ID=carnivores_fumane$ID,Start=carnivores_fumane$start,End=carnivores_fumane$end,FRAG_COUNT=rowSums(carnivores_fumane[,c(22,23,25,26)])) F_Panthera_dt<-data.table(ID=carnivores_fumane$ID,Start=carnivores_fumane$start,End=carnivores_fumane$end,FRAG_COUNT=rowSums(carnivores_fumane[,24])) # BIRDS ARE ALREADY SUMMED ACCORDING TO THE ENVIRONMENT THEY REPRESENT, ONLY COLNAMES CHANGED INTO colnames(birdseco_fumane)<-c("ID","Chronology", "Technocomplex","Start","End","water","open","rocky","forest") F_water_dt<-data.table(ID=birdseco_fumane$ID,Start=birdseco_fumane$Start,End=birdseco_fumane$End, FRAG_COUNT=birdseco_fumane$water) F_rocky_dt<-data.table(ID=birdseco_fumane$ID,Start=birdseco_fumane$Start,End=birdseco_fumane$End, FRAG_COUNT=birdseco_fumane$rocky) F_open_dt<-data.table(ID=birdseco_fumane$ID,Start=birdseco_fumane$Start,End=birdseco_fumane$End, FRAG_COUNT=birdseco_fumane$open) F_forest_dt<-data.table(ID=birdseco_fumane$ID,Start=birdseco_fumane$Start,End=birdseco_fumane$End, FRAG_COUNT=birdseco_fumane$forest) # GENERAL UNGULATES AND CARNIVORES # F_ungulates_dt<-data.table(ID=ungulates_fumane$ID,Start=ungulates_fumane$start,End=ungulates_fumane$end,FRAG_COUNT=ungulates_fumane$tot_ungulates) F_carnivores_dt<-data.table(ID=carnivores_fumane$ID,Start=carnivores_fumane$start,End=carnivores_fumane$end,FRAG_COUNT=carnivores_fumane$tot) ## MONTE CARLO SIMULATION OF ESTIMATES AND ENVELOPES BASED ON CHRONOLOGICAL INTERVALS ## ######################################################################################## set.seed(20012019) # set random seed to date of submission # UNGULATES # F.caprinae.sim.500<-date.simulate(data=F_Caprinae_dt, values=F_Caprinae_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on counts F.bovinae.sim.500<-date.simulate(data=F_Bovinae_dt, values=F_Bovinae_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on bovinnae counts F.cervidae.sim.500<-date.simulate(data=F_Cervidae_dt, values=F_Cervidae_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on cervidae counts F.ungulates.sim.500<-date.simulate(data=F_ungulates_dt, values=F_ungulates_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on cervidae counts # CARNIVORES # F.canidae.sim.500<-date.simulate(data=F_Canidae_dt, values=F_Canidae_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on counts F.Ursidae.sim.500<-date.simulate(data=F_Ursidae_dt, values=F_Ursidae_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on counts F.carnivores.sim.500<-date.simulate(data=F_carnivores_dt, values=F_carnivores_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_carnivores_dt$Start),end=max(F_carnivores_dt$End)) # BIRDS ECO # F.water.sim.500<-date.simulate(data=F_water_dt, values=F_water_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on counts F.rocky.sim.500<-date.simulate(data=F_rocky_dt, values=F_rocky_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on counts F.open.sim.500<-date.simulate(data=F_open_dt, values=F_open_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on counts F.forest.sim.500<-date.simulate(data=F_forest_dt, values=F_forest_dt$FRAG_COUNT, bin.width=500, reps=5000, dummy=TRUE, context.fields="ID", start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on counts ## RATE OF CHANGE AT FUMANE WITH MC SIMULATION AND DUMMY PROBABILITY BASED ON AORISTIC SUM ## ########################################################################################## # UNGULATES # F.caprinae.aor500<-aorist(F_Caprinae_dt,bin.width=500,weight=F_Caprinae_dt$FRAG_COUNT, start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.bovinae.aor500<-aorist(F_Bovinae_dt,bin.width=500,weight=F_Bovinae_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.cervidae.aor500<-aorist(F_Cervidae_dt,bin.width=500,weight=F_Cervidae_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.caprinae.aor1000<-aorist(F_Caprinae_dt,bin.width=1000,weight=F_Caprinae_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.bovinae.aor1000<-aorist(F_Bovinae_dt,bin.width=1000,weight=F_Bovinae_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.cervidae.aor1000<-aorist(F_Cervidae_dt,bin.width=1000,weight=F_Cervidae_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.ungulates.aor500<-aorist(F_ungulates_dt,bin.width=500,weight=F_ungulates_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.carnivores.aor500<-aorist(F_carnivores_dt,bin.width=500,weight=F_carnivores_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.ungulates.aor1000<-aorist(F_ungulates_dt,bin.width=1000,weight=F_ungulates_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.carnivores.aor1000<-aorist(F_carnivores_dt,bin.width=500,weight=F_carnivores_dt$FRAG_COUNT,start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.caprinae.RoC500 <- date.simulate(data=F_Caprinae_dt, values=F_Caprinae_dt$FRAG_COUNT, probs=F.carnivores.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID",start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on aoristic sum F.bovinae.RoC500 <- date.simulate(data=F_Bovinae_dt, values=F_Bovinae_dt$FRAG_COUNT, probs=F.carnivores.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID",start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on aoristic sum F.cervidae.RoC500 <- date.simulate(data=F_Cervidae_dt, values=F_Cervidae_dt$FRAG_COUNT, probs=F.carnivores.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID",start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) # simulate distribution and dummy distribution based on aoristic sum F.caprinae.RoC1000 <- date.simulate(data=F_Caprinae_dt, values=F_Caprinae_dt$FRAG_COUNT, probs=F.carnivores.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") # simulate distribution and dummy distribution based on aoristic sum F.bovinae.RoC1000 <- date.simulate(data=F_Bovinae_dt, values=F_Bovinae_dt$FRAG_COUNT, probs=F.carnivores.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") # simulate distribution and dummy distribution based on aoristic sum F.cervidae.RoC1000 <- date.simulate(data=F_Cervidae_dt, values=F_Cervidae_dt$FRAG_COUNT, probs=F.carnivores.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") # simulate distribution and dummy distribution based on aoristic sum # CARNIVORES # F.canidae.aor500<-aorist(F_Canidae_dt,bin.width=500,weight=F_Canidae_dt$FRAG_COUNT, start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.ursidae.aor500<-aorist(F_Ursidae_dt,bin.width=500,weight=F_Ursidae_dt$FRAG_COUNT, start.date=min(F_Caprinae_dt$Start),end.date=max(F_Caprinae_dt$End)) F.canidae.RoC500<-date.simulate(data=F_Canidae_dt,values=F_Canidae_dt$FRAG_COUNT, probs=F.ungulates.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") # simulate distribution and dummy distribution F.canidae.RoC1000<-date.simulate(data=F_Canidae_dt,values=F_Canidae_dt$FRAG_COUNT, probs=F.ungulates.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") # simulate distribution and dummy distribution F.ursidae.RoC500<-date.simulate(data=F_Ursidae_dt,values=F_Ursidae_dt$FRAG_COUNT, probs=F.ungulates.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") F.ursidae.RoC1000<-date.simulate(data=F_Ursidae_dt,values=F_Ursidae_dt$FRAG_COUNT, probs=F.ungulates.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") # BIRDS ECO # F.water.RoC500 <- date.simulate(data=F_water_dt, values=F_water_dt$FRAG_COUNT, probs=F.ungulates.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID",start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) F.rocky.RoC500 <- date.simulate(data=F_rocky_dt, values=F_rocky_dt$FRAG_COUNT, probs=F.ungulates.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID",start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) F.open.RoC500 <- date.simulate(data=F_open_dt, values=F_open_dt$FRAG_COUNT, probs=F.ungulates.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID",start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) F.forest.RoC500 <- date.simulate(data=F_forest_dt, values=F_forest_dt$FRAG_COUNT, probs=F.ungulates.aor500$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID",start=min(F_Caprinae_dt$Start),end=max(F_Caprinae_dt$End)) F.water.RoC1000 <- date.simulate(data=F_water_dt, values=F_water_dt$FRAG_COUNT, probs=F.ungulates.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") F.rocky.RoC1000 <- date.simulate(data=F_rocky_dt, values=F_rocky_dt$FRAG_COUNT, probs=F.ungulates.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") F.open.RoC1000 <- date.simulate(data=F_open_dt, values=F_open_dt$FRAG_COUNT, probs=F.ungulates.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") F.forest.RoC1000 <- date.simulate(data=F_forest_dt, values=F_forest_dt$FRAG_COUNT, probs=F.ungulates.aor1000$aorist, reps=5000, RoC="a", dummy=TRUE, context.fields="ID") save.image("Romandini_MPUP.RData") ############# #----------------------## FIGURES ##----------------------# ############# # PLOT RELATIVE FREQUENCIES BASED ON AORISTIC SUMS # #################################################### # UNGULATES jpeg("Fig9new.jpg", width=30, height=20, units="cm", res=300) par(mfrow=c(2,1),mgp=c(3.2,0.7,0), mar=c(0, 5.1, 0.5, 2.1), oma=c(12.1,0,0,0)) #par(mar=c(8.1,8.1,4.1,4.1)) # general aoristic sum axis.setup(F.ungulates.aor500[1:15], axis.lab=F,xaxt="n",cex.lab=1, cex.axis=1, las=2, ylab="Estimated and simulated NISP/bin", ylim=c(0,3500)) poly.chron(F.ungulates.sim.500, field.list=c("dummy"), axis.lab=F, col.list = c("grey80"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) poly.chron(F.ungulates.sim.500, field.list=c("value"), axis.lab=F, col.list = c("grey60"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) lines(F.ungulates.aor500$aorist[1:15], col="grey5", lwd=3) legend("topright", "A.", cex=1.4, bty="n") # ungulate relative frequencies axis.setup(Fumane_ungulates_aor_relfreqs[1:15], axis.lab=T,cex.lab=1.1, cex.axis=1, las=2, ylab="Estimated NISP/bin", ylim=c(0,1)) rect(par("usr")[1], par("usr")[3], par("usr")[2], par("usr")[4],col="gray90", border=T) grid(col="gray99") #F.caprinae.sim.500$full lines(Fumane_ungulates_aor_relfreqs[1:15,5], col="darkred", lwd=3) #Coleod. antiq lines(Fumane_ungulates_aor_relfreqs[1:15,6], col="darkolivegreen", lwd=3) #Sus scrofa lines(Fumane_ungulates_aor_relfreqs[1:15,7], col="chartreuse4", lwd=3) # Megal. gig lines(Fumane_ungulates_aor_relfreqs[1:15,8], col="chartreuse2", lwd=3) #Cervus el lines(Fumane_ungulates_aor_relfreqs[1:15,9], col="darkolivegreen4", lwd=3) #Capreolus capr lines(Fumane_ungulates_aor_relfreqs[1:15,12], col="darkgreen", lwd=3) # Alces alces lines(Fumane_ungulates_aor_relfreqs[1:15,15], col="beige", lwd=3) #Bos primig lines(Fumane_ungulates_aor_relfreqs[1:15,16], col="firebrick2", lwd=3) #Bison prisc lines(Fumane_ungulates_aor_relfreqs[1:15,17], col="darksalmon", lwd=3) #bos_bison lines(Fumane_ungulates_aor_relfreqs[1:15,18], col="dodgerblue4", lwd=3) #capra ibex lines(Fumane_ungulates_aor_relfreqs[1:15,19], col="cornflowerblue", lwd=3) #rupicapra #axis.setup(F.caprinae.sim.500$full[1:18], axis.lab=T, cex.lab=1.1, cex.axis=1, las=2, ylab="Estimated NISP/bin", ylim=c(0,4000)) #rect(par("usr")[1], par("usr")[3], par("usr")[2], par("usr")[4],col="gray90", border=T) #grid(col="gray99") #legend("topright", legend="B.", cex=1.5, text.font=2, bty="n") #lines(PROVA_UNGALL$aorist[1:17]) #poly.chron(PROVA_UNGALL.sim.500, field.list=c("dummy"), axis.lab=F, col.list = c("grey50"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) #box.chron(PROVA_UNGALL.sim.500, field.list=c("count"), axis.lab=F, col.list = c("darkolivegreen4"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) #lines(PROVA_UNGALL$aorist[1:17], col="forestgreen", lwd=3) legend("topright", "B.", cex=1.4, bty="n") ungulatepalette<-c("darkred","goldenrod1","darkolivegreen","chartreuse4","chartreuse2","darkolivegreen4","darkseagreen","darkgreen","beige","firebrick2","darksalmon","dodgerblue4","cornflowerblue") legend(xpd=NA,x=3, y=-0.62, legend=c(expression(italic("Coleod. antiq.")),expression(italic("Equus ferus")),expression(italic("Sus scrofa")),expression(italic("Megal. gig.")),expression(italic("Cervus el.")),expression(italic("Capreol. capr.")),expression(italic("Dama Dama")),expression(italic("Alce alces")),expression(italic("Bos primig.")), expression(italic( "Bison prisc.")),expression(italic("Bos / Bison")),expression(italic("Capra ibex")), expression(paste(italic("Rupicapra "), "sp."))),text.font=c(3,3,3,3,3,3,3,3,3,3,3,3,1), pch=19, cex=1.2, col=ungulatepalette,ncol=6,bty="n") dev.off() # CARNIVORES (Fumane only) # jpeg("Fig10new.jpg", width=30, height=12, units="cm", res=300) par(mfrow=c(1,1), mgp=c(3.2,0.7,0), mar=c(1.1, 5.1, 1.1, 2.1), oma=c(12.1,0,0,0)) #par(mar=c(8.1,8.1,4.1,4.1)) axis.setup(F.caprinae.sim.500$full[1:15],cex.lab=1.1, cex.axis=1, las=2, ylab="Estimated NISP/bin", ylim=c(0,1)) rect(par("usr")[1], par("usr")[3], par("usr")[2], par("usr")[4],col="gray90", border=T) grid(col="gray99") lines(Fumane_carnivores_aor_relfreqs[1:15,3], col="darkred", lwd=3) #Canis lupus lines(Fumane_carnivores_aor_relfreqs[1:15,4], col="firebrick", lwd=3) #Vulpes vulpes lines(Fumane_carnivores_aor_relfreqs[1:15,5], col="firebrick3", lwd=3) #Vulpes alop. lines(Fumane_carnivores_aor_relfreqs[1:15,6], col="firebrick2", lwd=3) #Alopex lag. lines(Fumane_carnivores_aor_relfreqs[1:15,7], col="goldenrod1", lwd=3) #Ursus spel. lines(Fumane_carnivores_aor_relfreqs[1:15,8], col="gold", lwd=3) # Ursus arc. lines(Fumane_carnivores_aor_relfreqs[1:15,9], col="lightgoldenrod1", lwd=3) # Ursus sp. lines(Fumane_carnivores_aor_relfreqs[1:15,10], col="darkblue", lwd=3) #mustela erm. lines(Fumane_carnivores_aor_relfreqs[1:15,11], col="deepskyblue4", lwd=3) # mustela niv. lines(Fumane_carnivores_aor_relfreqs[1:15,12], col="deepskyblue3", lwd=3) #mustela put. lines(Fumane_carnivores_aor_relfreqs[1:15,13], col="deepskyblue2", lwd=3) #martes sp. lines(Fumane_carnivores_aor_relfreqs[1:15,14], col="lightskyblue", lwd=3) #martes mart. lines(Fumane_carnivores_aor_relfreqs[1:15,15], col="lightskyblue1", lwd=3) #mustelidae lines(Fumane_carnivores_aor_relfreqs[1:15,17], col="lightsteelblue1", lwd=3) #Meles meles lines(Fumane_carnivores_aor_relfreqs[1:15,16], col="lightsteelblue", lwd=3) #gulo gulo lines(Fumane_carnivores_aor_relfreqs[1:15,18], col="black", lwd=3) #Crocuta crocuta lines(Fumane_carnivores_aor_relfreqs[1:15,19], col="grey30", ,lwd=3) #Felis silv. lines(Fumane_carnivores_aor_relfreqs[1:15,20], col="grey60", lwd=3) #Lynx lynx lines(Fumane_carnivores_aor_relfreqs[1:15,21], col="grey85", lwd=3) #Panthera pard. lines(Fumane_carnivores_aor_relfreqs[1:15,22], col="lavenderblush", lwd=3) #Panthera leo carnivorepalette<-c( "darkred", "firebrick", "firebrick3", "firebrick2", "goldenrod1", "gold", "lightgoldenrod1", "darkblue", "deepskyblue4", "deepskyblue3", "deepskyblue2", "lightskyblue", "lightskyblue1", "lightsteelblue", "lightsteelblue1", "black", "grey30", "grey60", "grey85", "lavenderblush") legend(xpd=NA,x=2, y=-0.75, legend=c( "Canis lupus", "Vulpes vulpes", "Vulpes alop.", "Alopex lag.", "Ursus spel.", "Ursus arc.", "Ursus sp.", "Mustela erm.", "Mustela niv.", "Mustela put.", "Martes sp.", "Martes mart.", "Mustelidae", "Gulo gulo", "Meles meles", "Crocuta croc.", "Felis silv.", "Lynx lynx", "Panthera pard.", "Panthera leo"), text.font=c(3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3), pch=19, cex=1.2, col=carnivorepalette,ncol=6,bty="n") dev.off() # BIRDS AS ECOZONES # jpeg("Fig11new.jpg", width=30, height=20, units="cm", res=300) par(mfrow=c(1,1), mgp=c(3.2,0.7,0), mar=c(1.1, 5.1, 1.1, 2.1), oma=c(12.1,0,0,0)) #par(mar=c(8.1,8.1,4.1,4.1)) axis.setup(F.caprinae.sim.500$full[1:15], axis.lab=T, cex.lab=1.1, cex.axis=1, las=2, ylab="Estimated NISP/bin", ylim=c(0,0.7)) rect(par("usr")[1], par("usr")[3], par("usr")[2], par("usr")[4],col="gray90", border=T) grid(col="gray99") lines(Fumane_birdseco_aor_relfreqs[1:15,3], col="cornflowerblue", lwd=3) # water lines(Fumane_birdseco_aor_relfreqs[1:15,4], col="goldenrod1", lwd=3) # open lines(Fumane_birdseco_aor_relfreqs[1:15,5], col="grey50", lwd=3) #rocky lines(Fumane_birdseco_aor_relfreqs[1:15,6], col="forestgreen", lwd=3) #forest birdpalette<-c("cornflowerblue","grey50","goldenrod1","forestgreen") legend(xpd=NA,x=8, y=-0.25, legend=c("Water", "Rocky", "Open", "Forest"),pch=19, cex=1.2, col=birdpalette,ncol=2,bty="n") dev.off() # PLOT RATES OF CHANGE OF UNGULATE FAMILIES # ############################################# # UNGULATES at 500-yr bins # jpeg("Fig12new.jpg", width=25, height=25, units="cm", res=300) #par(mfrow=c(3, 2), mar=c(3.8, 3.1, 1, 1), oma=c(3,3,0,0)) par(mfrow=c(3, 1),mgp=c(3.2,0.7,0), mar=c(1.1, 1.9, 1.1, 2.1),oma=c(10,5.2,0,0)) axis.setup(F.cervidae.aor500[1:15], axis.lab=T, xaxt="n",cex.lab=1.4, cex.axis=1.2, las=2, ylab="Estimated Rate of Change", ylim=c(-3000,3000)) poly.chron(F.cervidae.RoC500, field.list=c("RoC.value","RoC.dummy"), axis.lab=F, col.list = c("forestgreen","grey50"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) box.chron(F.cervidae.RoC500, field.list=c("RoC.value"), col.list = c("forestgreen"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) abline(h=0, col="red", lty=2) legend("topright", "A.", cex=1.4, bty="n") axis.setup(F.cervidae.aor500[1:15], axis.lab=F, xaxt="n", cex.lab=1.4, cex.axis=1.2, las=2, ylab="Estimated Rate of Change", ylim=c(-1000,1000)) poly.chron(F.caprinae.RoC500, field.list=c("RoC.value","RoC.dummy"), axis.lab=F, col.list = c("cornflowerblue","grey50"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) box.chron(F.caprinae.RoC500, field.list=c("RoC.value"), col.list = c("cornflowerblue"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) abline(h=0, col="red", lty=2) legend("topright", "B.", cex=1.6, bty="n") mtext("Estimated rate of change", 2, line=3, cex=1, font=2, outer=T) axis.setup(F.cervidae.aor500[1:15], axis.lab=T, cex.lab=0.8, cex.axis=1.2, las=2, ylab="Estimated Rate of Change", ylim=c(-100,100)) poly.chron(F.bovinae.RoC500, field.list=c("RoC.value","RoC.dummy"), axis.lab=F, col.list = c("darkred","grey50"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) box.chron(F.bovinae.RoC500, field.list=c("RoC.value"), col.list = c("darkred"), legend=FALSE, ylab="", cex.axis=0.9, las=2, add=T) abline(h=0, col="red", lty=2) legend("topright", "C.", cex=1.6, bty="n") mtext("Date calBP", 1, line=8, cex=1, font=2, outer=T) dev.off() ##################################### save.image("Romandini_MPUP.RData") # End of Log