library(ggplot2)
library(ggpubr)
library(dplyr)
library(data.table)
library(cowplot)1 Einleitung
1.1 Inhalt
Dieses Skript dokumentiert die zu Kapitel 6.2.3 - Schauer (2025) gehörenden Abbildungen und Statistiken:
Kapitel 6.2.3 - Datengrundlage: Abb. 6-19 - Skript-Kapitel 4.
Kapitel 6.2.3.a - La Hoguette/Bandkeramische Gefäßeinheiten: Abb. 6-20 - Skript-Kapitel 5.
Kapitel 6.2.3.c - Bodenproben: Abb. 6-21 - Skript-Kapitel 6.
Kapitel 6.2.3.d - Datierung: Abb. 6-22 - Skript-Kapitel 7.
Kapitel 6.2.3.e - Warenarten: Abb. 6-23 - Skript-Kapitel 8, Abb. 6-24 - Skript-Kapitel 9 und Abb. 6-25 - Skript-Kapitel 10.
Kapitel 6.2.3.f - Typenspektrum: Abb. 6-26 - Skript-Kapitel 11, Abb. 6-27 - Skript-Kapitel 12 und Abb. 6-28 - Skript-Kapitel 13.
Kapitel 6.2.3.g - Zierweise: Abb. 6-29 - Skript-Kapitel 14, Abb. 6-30 - Skript-Kapitel 15, Abb. 6-31 - Skript-Kapitel 16, Abb. 6-32 - Skript-Kapitel 17 und Abb. 6-33 - Skript-Kapitel 18.
1.2 Praktische Hinweise
1.2.1 Einführende Literatur
Um mit dem bereitgestellten R-Skript arbeiten zu können, werden die wichtigsten praktischen Schritte, die für den Einstieg erforderlich sind, kurz erklärt. Dies ersetzt jedoch nicht das Studium des Programms selbst und der Inhalte der Skripte.
Siegmund (2020) wird als Grundlage in deutscher Sprache empfohlen, als Einführung in das R-Plugin Quarto seine Anleitung Siegmund (2023). Auf Englisch ist die R Quarto-Website besonders zu empfehlen.
Field, A. u. a. (2013) ist lesenswert, unterhaltsam und enthält alle relevanten Informationen für den Einstieg. Das R Core Team bietet eine regelmäßig aktualisierte Einführung an; die aktuelle Version ist hier zu finden.
1.2.2 R, R Studio und R Quarto
R, auch R Console oder RGUI, ist das „reine“ R, d. h. es arbeitet ausschließlich mit Code. RStudio hingegen verfügt über eine Benutzeroberfläche und greift auf R zu.
Dieses R-Skript wurde in RStudio in Verbindung mit Quarto erstellt – einer R-spezifischen Schreibumgebung, die die Handhabung von Code sowohl bei der Entwicklung als auch bei der Veröffentlichung erheblich vereinfacht. Quarto ermöglicht es, einzelne R-Skripte in Form von Quarto-Dateien (.qmd) zu erstellen und in verschiedene andere Formate (.html, .pdf) zu exportieren. Neben dem „reinen“ R-Code können auch zusätzliche Informationen zu den Code-Modulen bereitgestellt werden.
Quarto-Dokumente enthalten ausführbaren R-Code, d. h. sie wurden entwickelt und umfangreich getestet, um die gewünschten Berechnungen fehlerfrei durchzuführen. Werden die Quarto-Dateien in RStudio geöffnet, sind die Code-Blöcke grau hinterlegt und können automatisch ausgeführt werden. Weitere Informationen zu Quarto und Quarto-Code finden sich hier.
Um mit diesem Skript zu arbeiten, wird empfohlen, R und RStudio, sowie R Quarto zu installieren.
1.2.3 R Projekte
Um sicherzustellen, dass die Berechnungen reibungslos ablaufen, wurde das Skript in ein R-Projekt eingebettet. Die R-Projektdatei (.Rproj) befindet sich im übergeordneten Ordner der Berechnungen und kann durch Doppelklicken geöffnet werden. Der Dateipfad wird über die Position dieser Datei definiert, sodass das gesamte Projekt beliebig gespeichert werden kann – vorausgesetzt, die Daten befinden sich in den vorgegebenen Ordnern. Die einzige Voraussetzung ist, dass der unter Skript-Kapitel Kapitel 3 hinterlegte Code-Schnipsel beim ersten Arbeiten mit diesem Skript ausgeführt wird.
Ein weiterer Vorteil von R-Projekten ist, dass alle Quarto-Dateien, die beim letzten Schließen geöffnet waren, direkt beim Öffnen des Projekts wieder geladen werden – es muss also nicht manuell nach der Dateistruktur gesucht werden.
1.2.4 R Pakete
R-Pakete müssen zunächst installiert und anschließend in jeder Sitzung erneut geladen werden siehe auch Skript-Kapitel 2, um die Berechnungen auszuführen. Sie enthalten Funktionen, die für bestimmte Analysen erforderlich sind. Zum Installieren kann der folgende Code verwendet werden:
- install.packages(“Paket-Name”)
Die Pakete werden mit folgendem Befehl geladen:
- library(Paket-Name)
Eine kurze Einführung in grundlegende R-Befehle findet sich beispielsweise auch hier.
1.3 Skript & Packages
Dieses Quarto-Skript (R Quarto v. 1.5.55) (Allaire u. a. 2024) wurde mit R v. 4.4.1 (R Core Team 2024) und RStudio v. 2024.04.2 (RStudio Team 2024) erstellt. Es werden folgende R-Pakete verwendet:
- data.table (Wilke 2024)
- cowplot (Barrett u. a. 2024)
- dplyr (Wickham 2023)
- ggplot2 (Wickham 2016)
- ggpubr (Kassambara 2023)
Vor Beginn der Analysen müssen sowohl alle Pakete (siehe Skript-Kapitel Kapitel 2) geladen als auch das Working Directory gesetzt werden (siehe Skript-Kapitel Kapitel 3).
Der Code ist lauffähig, d. h. er kann fehlerfrei ausgeführt werden, sofern die vorgegebene Datenstruktur beibehalten wird.
In jedem Code-Block wird der Code zur Erstellung der jeweils ersten Abbildung erläutert – nachfolgende Grafiken mit vergleichbarem Code erhalten keine eigene Beschreibung.
1.4 Gerät und Messparameter
Die Messdaten wurden mit dem Niton XL3t (Nr. 97390) des Departments für Kulturwissenschaften der Universität München im TestAllGeo-Modus ermittelt (60 Sekunden Standard, Niedrig, Hoch sowie 120 Sekunden Leicht-Modus) und mit einem 8 mm Messspot von M. Schauer durchgeführt. Die Messungen fanden von September bis Dezember 2018 sowie von September 2019 bis Juli 2020 statt. Weitere Informationen finden sich in Kapitel 6.1.1 – Schauer (2025).
2 Notwendige R Pakete
3 Working directory
knitr::opts_knit$set(root.dir = "./")4 Abb. 6-19
# Daten einlesen
data<- read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_ArchDaten.csv")
# Diagramm erstellen
Balken_BB_MW_Messstelle<-ggplot(data) + geom_bar(aes(x=Messstelle),fill="lightgrey",color="black")+ # Manuelle Definition der Farbe der Balken
xlab("Messstelle")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
theme_classic()+ # Klassisches Design
scale_y_continuous(breaks=seq(0,350,50),expand=c(0,0), limits=c(0,390))+ # Manuelle Definition der Y-Achse
theme(axis.line=element_line(colour="black",size=0.25))+ theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
geom_text(aes(x=Messstelle,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75) # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
# Daten einlesen und filtern
data1<- read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_vollständigMW_bearb.csv")
data<-subset(data1,Messstelle %in% c("frischer Bruch"))
# Diagramm erstellen
Balken_BB_MW_Material<-ggplot(data) + geom_bar(aes(x=Kultur),fill="lightgrey",color="black")+
xlab("Artefakttyp")+ylab("Probenanzahl")+
theme_classic()+
scale_y_continuous(breaks=seq(0,340,20),expand=c(0,0), limits=c(0,225))+
theme(axis.line=element_line(colour="black",size=0.25))+ theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+
geom_text(aes(x=Kultur,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)
# Kombination der Diagramme
plot_grid(Balken_BB_MW_Messstelle,Balken_BB_MW_Material,ncol=1,nrow=2,align = "v",axis = "lr",rel_heights=c(1,1))# Export des kombinierten Diagramms
ggsave("Abb.6-19.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=8,width=9,unit=c("cm"),dpi=1200)5 Abb. 6-20
# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
# Diagramm erstellen
Balken_BB_MW_Kultur_Häuser<-ggplot(data) +
geom_bar(aes(fill=Kultur, x=Haus),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+ # Manuelle Definition der Anordnung der Balken
scale_fill_manual(values = c("La Hoguette" = "grey20", "LBK" = "lightgrey"))+ # Manuelle Definition der Farbe der Balken
xlab("Häuser")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
theme_classic()+ # Klassisches Design
scale_y_continuous(breaks=seq(0,300,10),expand=c(0,0), limits=c(0,62))+ # Manuelle Definition der Y-Achse
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="none") + theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
geom_text(aes(mapping=Kultur, x=Haus,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) # Achsentext rotieren
# Daten filtern
data<-filter(data, Haus=="Gruben")
# Definieren der Befundnummern als Zahlenwerte
data$HausuGruben <- ifelse(data$HausuGruben %in% c("2","12", "17", "29","45", "48", "79"), # Auswahl der zu formatierenden Werte
sprintf("%03d", as.numeric(data$HausuGruben)),data$HausuGruben) # Formatieren der Befundnummern auf drei Stellen mit vorangestellten Nullen
# Diagramm erstellen
Balken_BB_MW_Kultur_Gruben<-ggplot(data) +
geom_bar(aes(fill=Kultur, x=HausuGruben),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+
scale_fill_manual(values = c("La Hoguette" = "grey20", "LBK" = "lightgrey"))+
xlab("Gruben")+ylab("Probenanzahl")+
theme_classic()+
scale_y_continuous(breaks=seq(0,300,2),expand=c(0,0), limits=c(0,19))+
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+
geom_text(aes(mapping=Kultur, x=HausuGruben,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
# Kombination der Diagramme
plot_grid(Balken_BB_MW_Kultur_Häuser,Balken_BB_MW_Kultur_Gruben,ncol=1,nrow=2,align = "v",axis = "lr",rel_heights=c(1,1))# Export des kombinierten Diagramms
ggsave("Abb.6-20.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=10,width=15.3,unit=c("cm"),dpi=1200)6 Abb. 6-21
# Daten einlesen
data<- read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Bodenproben//Daten_BB_BP_vollständig_bearb.csv")
# Diagramm erstellen
ggplot(data) + geom_bar(aes(fill=Label, x=Probennr.),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+ # Manuelle Definition der Anordnung der Balken
scale_fill_manual(values = c("Bodenprobe" = "white", "Ton" = "black"))+ # Manuelle Definition der Farbe der Balken
xlab("Befundnummer")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
theme_classic()+ # Klassisches Design
scale_y_continuous(breaks=seq(0,300,1),expand=c(0,0), limits=c(0,4))+ # Manuelle Definition der Y-Achse
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom")+ theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
geom_text(aes(mapping=Label, x=Probennr.,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) # Achsentext rotieren# Export des Diagramms
ggsave("Abb.6-21.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=5,width=10,unit=c("cm"),dpi=1200)7 Abb. 6-22
# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
# Diagramm erstellen
ggplot(data) + geom_bar(aes(fill=Kultur, x=Datierung),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+ # Manuelle Definition der Anordnung der Balken
scale_fill_manual(values = c("La Hoguette" = "grey20", "LBK" = "lightgrey"))+ # Manuelle Definition der Farbe der Balken
xlab("Datierung")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
theme_classic()+ # Klassisches Design
scale_y_continuous(breaks=seq(0,300,20),expand=c(0,0), limits=c(0,210))+ # Manuelle Definition der Y-Achse
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
geom_text(aes(mapping=Kultur, x=Datierung,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75) # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken# Export des Diagramms
ggsave("Abb.6-22.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=6,width=6.5,unit=c("cm"),dpi=1200)8 Abb. 6-23 - Statistik
# Daten einlesen und filtern
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
Tab1<-data[,c(24,53),]
# Erstellen der Tabelle
Tab2<-Tab1 %>% count(Gruppe.Magerung, Kultur) # Berechnen wie häufig die jeweiligen Magerungsarten für La Hoguette und Bandkeramik vorkommen
Tab3<-Tab2 %>% group_by(Kultur) %>% mutate(Prozent = prop.table(n)*100) # Berechnen der prozentualen Anteile je Magerungsart für La Hoguette und Bandkeramik
# Export der Tabelle
write.csv(Tab3,"../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//Tab_Abb_6_23.csv",row.names=FALSE)9 Abb. 6-24
# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
# Definieren der Befundnummern als Zahlenwerte
data$HausuGruben <- ifelse(data$HausuGruben %in% c("2","12", "17", "29","45", "48", "79"), # Auswahl der zu formatierenden Werte
sprintf("%03d", as.numeric(data$HausuGruben)),data$HausuGruben) # Formatieren der Befundnummern auf drei Stellen mit vorangestellten Nullen
# Daten filtern
data2<-data[,c(24,29,34,53),]
# Berechnen der Häufigkeit des Auftretens der Kobminationen der folgenden Variablen
data3<-data2 %>% count(HausuGruben,Gruppe.Magerung,Kultur,Knochen)
# Diagramm erstellen
ggplot(data3, aes(x=HausuGruben,y=Gruppe.Magerung, color=Knochen, shape=Kultur)) +
geom_point(aes(shape=Kultur),size=1.5) + scale_shape_manual(values=c(17,1))+ # Manuelle Definition von Größe und Form der Symbole
scale_color_manual(name="Knochen",values=c("black","wheat4"))+ # Manuelle Definition der Farbe der Symbole
xlab("Kontext") + ylab("Warenart") + # Manuelle Achsenbeschriftung
theme_light() + # Schlichtes Design
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) +theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+ # Achsentext rotieren
scale_y_discrete(limits=rev) # Kategorien der Y-Achse invers darstellen# Export des Diagramms
ggsave("Abb.6-24.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=19,width=15.3,unit=c("cm"),dpi=1200)10 Abb. 6-25
# Daten einlesen und filtern
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
data2<-data[,c(23,24,34,53),]
# Berechnen der Häufigkeit des Auftretens der Kobminationen der folgenden Variablen
data3<-data2 %>% count(Datierung,Gruppe.Magerung,Kultur,Knochen)
# Diagramm erstellen
ggplot(data3, aes(x=Datierung,y=Gruppe.Magerung, color=Knochen, shape=Kultur)) +
geom_point(aes(shape=Kultur),size=2) + scale_shape_manual(values=c(17,1))+ # Manuelle Definition von Größe und Form der Symbole
scale_color_manual(name="Knochen",values=c("black","wheat4"))+ # Manuelle Definition der Farbe der Symbole
xlab("Datierung") + ylab("Warenart") + # Manuelle Achsenbeschriftung
theme_light() + # Schlichtes Design
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
scale_y_discrete(limits=rev) # Kategorien der Y-Achse invers darstellen# Export des Diagramms
ggsave("Abb.6-25.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=19,width=8,unit=c("cm"),dpi=1200)11 Abb. 6-26
# Daten einlesen und filtern
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
data<-filter(data, Typ != "Unbestimmt")
# Darstellungsreihenfolge definieren
data$Typ<-factor(data$Typ,levels=c("Eifoermiger Topf","Schale","Kumpfartiges Gefaess","Becherartiges Gefaess","Becher","Flasche","Schuessel", "Feinkeramischer Kumpf","Grobkeramischer Kumpf","Fussgefaess"))
# Diagramm erstellen
ggplot(data) + geom_bar(aes(fill=Kultur, x=Typ),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+ # Manuelle Definition der Anordnung der Balken
scale_fill_manual(values = c("La Hoguette" = "grey20", "LBK" = "lightgrey"))+ # Manuelle Definition der Farbe der Balken
xlab("Gefäßtyp")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
theme_classic()+ # Klassisches Design
scale_y_continuous(breaks=seq(0,300,10),expand=c(0,0), limits=c(0,61))+ # Manuelle Definition der Y-Achse
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
geom_text(aes(mapping=Kultur,x=Typ,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) # Achsentext rotieren# Export des Diagramms
ggsave("Abb.6-26.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=8,width=9,unit=c("cm"),dpi=1200)12 Abb. 6-27
# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
# Darstellungsreihenfolge definieren
data$Typ<-factor(data$Typ,levels=c("Eifoermiger Topf","Schale","Kumpfartiges Gefaess","Becherartiges Gefaess","Becher","Flasche","Schuessel", "Feinkeramischer Kumpf","Grobkeramischer Kumpf","Fussgefaess", "Unbestimmt"))
# Daten filtern
data<-filter(data, Typ != "Unbestimmt")
data<-subset(data, Kultur %in% c("La Hoguette"))
# Definieren der Befundnummern als Zahlenwerte
data$HausuGruben <- ifelse(data$HausuGruben %in% c("2","12", "17", "29","45", "48", "79"), # Auswahl der zu formatierenden Werte
sprintf("%03d", as.numeric(data$HausuGruben)),data$HausuGruben) # Formatieren der Befundnummern auf drei Stellen mit vorangestellten
# Daten filtern
data2<-data[,c(24,29,31,34),]
# Berechnen der Häufigkeit des Auftretens der Kobminationen der folgenden Variablen
data3<-data2 %>% count(Typ,HausuGruben,Kultur,Knochen)
# Diagramm erstellen
ggplot(data3, aes(x=HausuGruben,y=Typ, color=Knochen, shape=Kultur)) +
geom_point(aes(shape=Kultur),size=2) +scale_shape_manual(values=c(17,1))+ # Manuelle Definition von Größe und Form der Symbole
scale_color_manual(name="Knochen",values=c("black","wheat4"))+ # Manuelle Definition der Farbe der Symbole
xlab("Kontexte") + ylab("Typ") + # Manuelle Achsenbeschriftung
theme_light() + # Schlichtes Design
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) +theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+ # Achsentext rotieren
scale_y_discrete(limits=rev) # Kategorien der Y-Achse invers darstellen# Export des Diagramms
ggsave("Abb.6-27.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=6,width=9,unit=c("cm"),dpi=1200)13 Abb. 6-28
# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
# Darstellungsreihenfolge definieren
data$Typ<-factor(data$Typ,levels=c("Eifoermiger Topf","Schale","Kumpfartiges Gefaess","Becherartiges Gefaess","Becher","Flasche","Schuessel", "Feinkeramischer Kumpf","Grobkeramischer Kumpf","Fussgefaess", "Unbestimmt"))
# Daten filtern
data<-subset(data, Kultur %in% c("La Hoguette"))
data2<-data[,c(23,24,31,34),]
# Berechnen der Häufigkeit des Auftretens der Kobminationen der folgenden Variablen
data3<-data2 %>% count(Typ,Datierung,Kultur,Knochen)
# Diagramm erstellen
ggplot(data3, aes(x=Datierung,y=Typ, color=Knochen, shape=Kultur)) +
geom_point(aes(shape=Kultur),size=2) +scale_shape_manual(values=c(17,1))+ # Manuelle Definition von Größe und Form der Symbole
scale_color_manual(name="Knochen",values=c("black","wheat4"))+ # Manuelle Definition der Farbe der Symbole
xlab("Datierung") + ylab("Gefäßtyp") + # Manuelle Achsenbeschriftung
theme_light() + # Schlichtes Design
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) +theme(legend.position="bottom") + # Manuelle Formatierung von Achsen- und Legendendarstellung
theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Achsentext rotieren
scale_y_discrete(limits=rev) # Kategorien der Y-Achse invers darstellen# Export des Diagramms
ggsave("Abb.6-28.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=6,width=8,unit=c("cm"),dpi=1200)14 Abb. 6-29
# Daten einlesen und filtern
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
data<-filter(data, ZierDetail != "Unverziert")
# Darstellungsreihenfolge definieren
data$ZierDetail<-factor(data$ZierDetail,levels=c("21.1","21.4","21.5","21.4/5","21.5/Leiste","22.1","22.1/58.1","22.1/58.6/Leiste","58.1","58.2","58.5","58.6","58.1/2","58.1/2/Leiste","58.1/7","Leiste","19.1","21.2","21.6","21.7","21.8","21.9","21.2/29.1","21.2/29.22","21.6/29.2","21.7/29.2","21.9/29.1","21.9/29.3/29.22.1","22.1/29.20","22.1/29.20/30.3","22.1/29.20/30.31/58.1","22.1/29.23","22.1/29.27","22.2","29.1","29.2","29.22","29.23","29.27","29.31","29.38","29.55","29.1/2","29.1/3","29.2/22","Eckiges Band gefuellt mit 29.22","29.20/22","29.20/30.1/58.1","29.3/58.2","29.20/Notenkopfzier","30.1/51.1/Linien in Winkelbaendern/Notenkopfzier","Doppelt perforiert","Fingerkniffe als Winkelband","Miniaturgefaess"))
# Diagramm erstellen
ggplot(data) + geom_bar(aes(fill=Kultur, x=ZierDetail),position = position_dodge2(preserve = 'single',padding =0.0),color="black")+ # Manuelle Definition der Anordnung der Balken
scale_fill_manual(values = c("La Hoguette" = "grey20", "LBK" = "lightgrey"))+ # Manuelle Definition der Farbe der Balken
xlab("Zier")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
theme_classic()+ # Klassisches Design
scale_y_continuous(breaks=seq(0,300,1),expand=c(0,0),limits=c(0,8.5))+ # Manuelle Definition der Y-Achse
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom") +theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
geom_text(aes(mapping=Kultur,x=ZierDetail,label=..count..),stat='count',position=position_dodge(1),hjust=-0.5,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
scale_x_discrete(limits=rev)+ # Kategorien der x-Achse invers darstellen
coord_flip() # Achsen invers darstellen# Export des Diagramms
ggsave("Abb.6-29.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=23,width=10,unit=c("cm"),dpi=1200)15 Abb. 6-30
# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
# Darstellungsreihenfolge definieren
data$Typ<-factor(data$Typ,levels=c("Eifoermiger Topf","Schale","Kumpfartiges Gefaess","Becherartiges Gefaess","Becher","Flasche","Schuessel", "Feinkeramischer Kumpf","Grobkeramischer Kumpf","Fussgefaess", "Unbestimmt"))
data$ZierDetail<-factor(data$ZierDetail,levels=c("21.1","21.4","21.5","21.4/5","21.5/Leiste","22.1","22.1/58.1","22.1/58.6/Leiste","58.1","58.2","58.5","58.6","58.1/2","58.1/2/Leiste","58.1/7","Leiste","19.1","21.2","21.6","21.7","21.8","21.9","21.2/29.1","21.2/29.22","21.6/29.2","21.7/29.2","21.9/29.1","21.9/29.3/29.22.1","22.1/29.20","22.1/29.20/30.3","22.1/29.20/30.31/58.1","22.1/29.23","22.1/29.27","22.2","29.1","29.2","29.22","29.23","29.27","29.31","29.38","29.55","29.1/2","29.1/3","29.2/22","Eckiges Band gefuellt mit 29.22","29.20/22","29.20/30.1/58.1","29.3/58.2","29.20/Notenkopfzier","30.1/51.1/Linien in Winkelbaendern/Notenkopfzier","Doppelt perforiert","Fingerkniffe als Winkelband","Miniaturgefaess","Unverziert"))
# Daten filtern
data2<-data[,c(24,31,34,61),]
# Berechnen der Häufigkeit des Auftretens der Kobminationen der folgenden Variablen
data3<-data2 %>% count(ZierDetail,Typ,Kultur,Knochen)
# Daten filtern
data3<-filter(data3, ZierDetail != "Unverziert")
data3<-filter(data3, Typ != "Unbestimmt")
# Diagramm erstellen
ggplot(data3, aes(x=Typ,y=ZierDetail, color=Knochen, shape=Kultur)) +
geom_point(aes(shape=Kultur),size=2) +scale_shape_manual(values=c(17,1))+ # Manuelle Definition von Größe und Form der Symbole
scale_color_manual(name="Knochen",values=c("black","wheat4"))+ # Manuelle Definition der Farbe der Symbole
xlab("Gefäßtyp") + ylab("Zier")+ # Manuelle Achsenbeschriftung
theme_light() + # Schlichtes Design
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black"))+theme(legend.position="bottom")+theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+ # Achsentext rotieren
scale_y_discrete(limits=rev) # Kategorien der Y-Achse invers darstellen# Export des Diagramms
ggsave("Abb.6-30.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=23,width=10,unit=c("cm"),dpi=1200)16 Abb. 6-31
# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
# Darstellungsreihenfolge definieren
data$ZierDetail<-factor(data$ZierDetail,levels=c("21.1","21.4","21.5","21.4/5","21.5/Leiste","22.1","22.1/58.1","22.1/58.6/Leiste","58.1","58.2","58.5","58.6","58.1/2","58.1/2/Leiste","58.1/7","Leiste","19.1","21.2","21.6","21.7","21.8","21.9","21.2/29.1","21.2/29.22","21.6/29.2","21.7/29.2","21.9/29.1","21.9/29.3/29.22.1","22.1/29.20","22.1/29.20/30.3","22.1/29.20/30.31/58.1","22.1/29.23","22.1/29.27","22.2","29.1","29.2","29.22","29.23","29.27","29.31","29.38","29.55","29.1/2","29.1/3","29.2/22","Eckiges Band gefuellt mit 29.22","29.20/22","29.20/30.1/58.1","29.3/58.2","29.20/Notenkopfzier","30.1/51.1/Linien in Winkelbaendern/Notenkopfzier","Doppelt perforiert","Fingerkniffe als Winkelband","Miniaturgefaess","Unverziert"))
# Daten filtern
data<-filter(data, Kultur == "La Hoguette")
data2<-data[,c(23,24,34,61),]
# Berechnen der Häufigkeit des Auftretens der Kobminationen der folgenden Variablen
data3<-data2 %>% count(ZierDetail,Datierung,Kultur,Knochen)
# Daten filtern
data3<-filter(data3, ZierDetail != "Unverziert")
# Diagramm erstellen
ggplot(data3, aes(x=Datierung,y=ZierDetail, color=Knochen, shape=Kultur)) +
geom_point(aes(shape=Kultur),size=2) +scale_shape_manual(values=c(17,1))+ # Manuelle Definition von Größe und Form der Symbole
scale_color_manual(name="Knochen",values=c("black","wheat4"))+ # Manuelle Definition der Farbe der Symbole
xlab("Datierung") + ylab("Zier") + # Manuelle Achsenbeschriftung
theme_light() + # Schlichtes Design
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) +theme(legend.position="bottom")+theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
scale_y_discrete(limits=rev) # Kategorien der Y-Achse invers darstellen# Export des Diagramms
ggsave("Abb.6-31.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=8,width=8,unit=c("cm"),dpi=1200)17 Abb. 6-32
# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
# Definieren der Befundnummern als Zahlenwerte
data$HausuGruben <- ifelse(data$HausuGruben %in% c("2","12", "17", "29","45", "48", "79"), # Auswahl der zu formatierenden Werte
sprintf("%03d", as.numeric(data$HausuGruben)),data$HausuGruben) # Formatieren der Befundnummern auf drei Stellen mit vorangestellten Nullen
# Darstellungsreihenfolge definieren
data$ZierDetail<-factor(data$ZierDetail,levels=c("21.1","21.4","21.5","21.4/5","21.5/Leiste","22.1","22.1/58.1","22.1/58.6/Leiste","58.1","58.2","58.5","58.6","58.1/2","58.1/2/Leiste","58.1/7","Leiste","19.1","21.2","21.6","21.7","21.8","21.9","21.2/29.1","21.2/29.22","21.6/29.2","21.7/29.2","21.9/29.1","21.9/29.3/29.22.1","22.1/29.20","22.1/29.20/30.3","22.1/29.20/30.31/58.1","22.1/29.23","22.1/29.27","22.2","29.1","29.2","29.22","29.23","29.27","29.31","29.38","29.55","29.1/2","29.1/3","29.2/22","Eckiges Band gefuellt mit 29.22","29.20/22","29.20/30.1/58.1","29.3/58.2","29.20/Notenkopfzier","30.1/51.1/Linien in Winkelbaendern/Notenkopfzier","Doppelt perforiert","Fingerkniffe als Winkelband","Miniaturgefaess","Unverziert"))
# Daten filtern
data<-filter(data, Kultur == "La Hoguette")
data2<-data[,c(24,29,34,61),]
# Berechnen der Häufigkeit des Auftretens der Kobminationen der folgenden Variablen
data3<-data2 %>% count(ZierDetail,HausuGruben,Kultur,Knochen)
# Daten filtern
data3<-filter(data3, ZierDetail != "Unverziert")
# Diagramm erstellen
ggplot(data3, aes(x=HausuGruben,y=ZierDetail, color=Knochen, shape=Kultur)) +
geom_point(aes(shape=Kultur),size=2) +scale_shape_manual(values=c(17,1))+ # Manuelle Definition von Größe und Form der Symbole
scale_color_manual(name="Knochen",values=c("black","wheat4"))+ # Manuelle Definition der Farbe der Symbole
xlab("Kontexte")+ ylab("Zier") + # Manuelle Achsenbeschriftung
theme_light() + # Schlichtes Design
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black"))+theme(legend.position="bottom")+theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelle Formatierung von Achsen- und Legendendarstellung
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+ # Achsentext rotieren
scale_y_discrete(limits=rev) # Kategorien der Y-Achse invers darstellen# Export des Diagramms
ggsave("Abb.6-32.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=9,width=10,unit=c("cm"),dpi=1200)18 Abb. 6-33
# Daten einlesen und filtern
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_vollständigMW_chemGruppen_bearb.csv")
data<-filter(data, LeFranc == "Stil A" | LeFranc == "Stil B")
# Ersetzen von leeren Zellen in Spalte Knochen mit "X"
data$Knochen[data$Knochen==""]<-"X"
# Diagramme erstellen
Balken_LeFranc_Knochen<-ggplot(data) + geom_bar(aes(fill=Knochen, x=LeFranc),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+ # Manuelle Definition der Anordnung der Balken
scale_fill_manual(values = c("Knochen" = "wheat4", "X" = "black"))+ # Manuelle Definition der Farbe der Balken
xlab("Zierstil nach LeFranc")+ylab("Probenanzahl")+# Manuelle Achsenbeschriftung
theme_classic()+ # Klassisches Design
scale_y_continuous(breaks=seq(0,300,1),expand=c(0,0), limits=c(0,8.5))+ # Manuelle Definition der Y-Achse
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black")) + theme(legend.position="bottom") + theme(axis.ticks=element_line(size=0.25,colour="black"))+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
geom_text(aes(mapping=Knochen, x=LeFranc,label=..count..),stat='count',position=position_dodge(1),vjust=-0.5,size=2.75) # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
Balken_LeFranc_Datierung<-ggplot(data) + geom_bar(aes(fill=LeFranc, x=Datierung),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+
scale_fill_manual(values = c("Stil A" = "grey32", "Stil B" = "white"))+
xlab("Datierung")+ylab("Probenanzahl")+
theme_classic()+
scale_y_continuous(breaks=seq(0,300,1),expand=c(0,0), limits=c(0,8.5))+
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black"))+theme(legend.position="bottom")+theme(axis.ticks=element_line(size=0.25,colour="black"))+
geom_text(aes(mapping=LeFranc, x=Datierung,label=..count..),stat='count',position=position_dodge(1),vjust=-0.5,size=2.75)
# Darstellungsreihenfolge definieren
data$Typ<-factor(data$Typ,levels=c("Eifoermiger Topf","Becherartiges Gefaess","Unbestimmt"))
# Diagramm erstellen
Balken_LeFranc_Typ<-ggplot(data) + geom_bar(aes(fill=LeFranc, x=Typ),position = position_dodge2(preserve = 'single',padding =0.0),color="black")+
scale_fill_manual(values = c("Stil A" = "grey32", "Stil B" = "white"))+
xlab("Gefäßtyp")+ylab("Probenanzahl")+
theme_classic()+
scale_y_continuous(breaks=seq(0,300,1),expand=c(0,0),limits=c(0,8.5))+
theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.title=element_blank(),legend.text=element_text(size=8),axis.title=element_text(size=9),axis.text=element_text(size=8,color="black"))+theme(legend.position="bottom")+theme(axis.ticks=element_line(size=0.25,colour="black"))+
geom_text(aes(mapping=LeFranc, x=Typ,label=..count..),stat='count',position=position_dodge(1),vjust=-0.5,size=2.75)
# Kombination der Diagramme
plot_grid(Balken_LeFranc_Knochen,Balken_LeFranc_Datierung,Balken_LeFranc_Typ,ncol=2,nrow=2,align = "v",axis = "lrhv",rel_heights=c(1,1))# Export des kombinierten Diagramms
ggsave("Abb.6-33.eps",path=("../Daten//Kap_6//Kap_6.2//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=10,width=10,unit=c("cm"),dpi=1200)