Digitale Dokumentation in R zu Schauer 2025 ‘La Hoguette - Kultur, Phänomen, Subkultur?’

Abbildungen und Statistiken zu Kapitel 6.3.2.b - Fallstudie Rottenburg ‘Fröbelweg’

Autor:in
Zugehörigkeiten

Michaela Schauer

Department für Kulturwissenschaften, Geschwister-Scholl-Platz 1, Ludwig-Maximilians-Universität München, München 80539, Deutschland

Naturhistorisches Museum Wien, Burgring 7, 1010 Wien, Österreich

Vienna Institute for Archaeological Science (VIAS), Universität Wien, Franz-Klein-Gasse 1, 1190 Wien, Österreich

Research Network Human Evolution und Archaeological Sciences (HEAS), Universität Wien, Djerassiplatz 1, 1030 Wien, Österreich

Veröffentlichungsdatum

25. Juli 2025

1 Einleitung

1.1 Inhalt

Dieses Skript umfasst die Dokumentation der zu Kapitel 6.3.2.b - Schauer (2025) gehörigen Abbildungen und Statistiken:

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:

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

library(cowplot)
library(dplyr)
library(ggfortify)
library(ggplot2)
library(ggpubr)
library(moments)
library(openxlsx)
library(PCAtest)
library(plyr)
library(rstatix)

3 Working directory

knitr::opts_knit$set(root.dir = "./")

4 Abb. 6-119

4.1 Daten zusammenstellen

# Daten einlesen und filtern
data1<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage//Daten_OG_vollständigMW.csv")
data2<-subset(data1, Fundort %in% c("Rottenburg 'Froebelweg'"))

# Speichern als CSV
write.csv(data2,"../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_vollständigMW.csv",row.names=FALSE)

4.2 Erstellen Abb. 6-119

# Daten einlesen
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_vollständigMW.csv")

# Diagramm erstellen
ggplot(data)+ 
  geom_bar(aes(x=Kultur),fill="lightgrey",color="black")+ # Manuelle Definition der Farbe der Balken
  geom_text(aes(x=Kultur,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
  xlab("Artefaktyp")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,340,20),expand=c(0,0), limits=c(0,162))+ # Manuelle Definition der Y-Achse
  theme_classic()+ # Klassisches 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)) # Vertikale Darstellung der X-Achsenbeschriftung

# Export des Diagramms 
ggsave("Abb.6-119.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=5,width=6,unit=c("cm"),dpi=1200)

5 Abb. 6-120

# Daten einlesen 
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_vollständigMW.csv")

# Formatieren der Kontextnummern
data$HausKontext  <- ifelse(grepl("^\\d+$", data$HausKontext ) & as.numeric(data$HausKontext ) %in% c(26,27,51), 
                      sprintf("%03d", as.numeric(data$HausKontext )), 
                      data$HausKontext )

# Diagramm erstellen
ggplot(data)+ geom_bar(aes(fill=Kultur, x=HausKontext),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+
  scale_fill_manual(values = c("La Hoguette" = "grey20", "LBK" = "lightgrey","Huettenlehm"="white"))+ # Manuelle Definition der Farbe der Balken
  geom_text(aes(mapping=Kultur,x=HausKontext,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
  xlab("Kontexte")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,52,5),expand=c(0,0), limits=c(0,52))+ # Manuelle Definition der Y-Achse
  theme_classic()+ # Klassisches 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)) # Vertikale Darstellung der X-Achsenbeschriftung

# Export des Diagramms 
ggsave("Abb.6-120.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=7,width=10,unit=c("cm"),dpi=1200)

6 Abb. 6-121

# Daten einlesen und filtern
data2<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage//Daten_RB_vollständigMW.csv")
data<-subset(data2, Kultur %in% c("LBK","La Hoguette"))

# Darstellungsreihenfolge definieren
data$Kultur<-factor(data$Kultur,levels=c("LBK","La Hoguette"))

# Diagramme erstellen
P2O5_Ba<-ggplot(data, aes(x=P2O5,y=Ba, color=Kultur, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(19,17))+ # Manuelle Definition der Form der Symbole
  scale_color_manual(name="Kultur",values=c("grey30","grey90"))+ # Manuelle Definition der Farbe der Symbole
  xlab("P2O5 in %")+ylab("Ba in ppm")+# Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches 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
  
CaO_Ba<-ggplot(data, aes(x=CaO,y=Ba, color=Kultur, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(19,17))+
  scale_color_manual(name="Kultur",values=c("grey30","grey90"))+
  xlab("CaO in %")+ylab("Ba in ppm")+
  theme_classic()+
  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"))

CaO_P2O5<-ggplot(data, aes(x=CaO,y=P2O5, color=Kultur, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(19,17))+
  scale_color_manual(name="Kultur",values=c("grey30","grey90"))+
  xlab("CaO in %")+ylab("P2O5 in %")+
  theme_classic()+
  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"))

# Kombination der Diagramme 
ggarrange(P2O5_Ba,CaO_Ba,CaO_P2O5,ncol=2,nrow=2,align = "hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms
ggsave("Abb.6-121.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=10,width=12,unit=c("cm"),dpi=1200)

7 Modell 1 - Normabstand berechnen

7.1 Zusammenstellen der Daten

# Daten einlesen und filtern
data1<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage//Daten_RB_vollständigMW.csv")
data2<-subset(data1, Kultur %in% c("LBK"))
data<-data2[,3:23]
data4<-subset(data1, Kultur %in% c("LBK","La Hoguette"))

# Definieren relevanter Variablen
Probennummer<-data4$Probennummer
Kultur<-data4$Kultur

# Berechnung des Medians der LBK-Keramik
MedianLBK<-(data) %>% dplyr::summarise(across(everything(),list(median=median)))

# Entfernen von "_median" aus den Spaltennamen
colnames(MedianLBK) <- gsub("_median", "", colnames(MedianLBK))

7.2 Normabstand der Keramik zum Median der LBK berechnen

# Extrahieren des Medians der LBK-Keramik für SiO2
MedianLBK_SiO2<-MedianLBK$SiO2

# Extrahieren der Messwerte für SiO2
data_SiO2<-data4$SiO2

# Berechnen des Multivariaten Normabstandes für jede Probe zum Median von SiO2
SiO2<-sqrt((data_SiO2-MedianLBK_SiO2)^2)/MedianLBK_SiO2

MedianLBK_TiO2<-MedianLBK$TiO2
data_TiO2<-data4$TiO2
TiO2<-sqrt((data_TiO2-MedianLBK_TiO2)^2)/MedianLBK_TiO2

MedianLBK_Al2O3<-MedianLBK$Al2O3
data_Al2O3<-data4$Al2O3
Al2O3<-sqrt((data_Al2O3-MedianLBK_Al2O3)^2)/MedianLBK_Al2O3

MedianLBK_Fe2O3<-MedianLBK$Fe2O3
data_Fe2O3<-data4$Fe2O3
Fe2O3<-sqrt((data_Fe2O3-MedianLBK_Fe2O3)^2)/MedianLBK_Fe2O3

MedianLBK_MnO<-MedianLBK$MnO
data_MnO<-data4$MnO
MnO<-sqrt((data_MnO-MedianLBK_MnO)^2)/MedianLBK_MnO

MedianLBK_MgO<-MedianLBK$MgO
data_MgO<-data4$MgO
MgO<-sqrt((data_MgO-MedianLBK_MgO)^2)/MedianLBK_MgO

MedianLBK_CaO<-MedianLBK$CaO
data_CaO<-data4$CaO
CaO<-sqrt((data_CaO-MedianLBK_CaO)^2)/MedianLBK_CaO

MedianLBK_K2O<-MedianLBK$K2O
data_K2O<-data4$K2O
K2O<-sqrt((data_K2O-MedianLBK_K2O)^2)/MedianLBK_K2O

MedianLBK_P2O5<-MedianLBK$P2O5
data_P2O5<-data4$P2O5
P2O5<-sqrt((data_P2O5-MedianLBK_P2O5)^2)/MedianLBK_P2O5

MedianLBK_V<-MedianLBK$V
data_V<-data4$V
V<-sqrt((data_V-MedianLBK_V)^2)/MedianLBK_V

MedianLBK_Cr<-MedianLBK$Cr
data_Cr<-data4$Cr
Cr<-sqrt((data_Cr-MedianLBK_Cr)^2)/MedianLBK_Cr

MedianLBK_Zn<-MedianLBK$Zn
data_Zn<-data4$Zn
Zn<-sqrt((data_Zn-MedianLBK_Zn)^2)/MedianLBK_Zn

MedianLBK_Rb<-MedianLBK$Rb
data_Rb<-data4$Rb
Rb<-sqrt((data_Rb-MedianLBK_Rb)^2)/MedianLBK_Rb

MedianLBK_Sr<-MedianLBK$Sr
data_Sr<-data4$Sr
Sr<-sqrt((data_Sr-MedianLBK_Sr)^2)/MedianLBK_Sr

MedianLBK_Y<-MedianLBK$Y
data_Y<-data4$Y
Y<-sqrt((data_Y-MedianLBK_Y)^2)/MedianLBK_Y

MedianLBK_Zr<-MedianLBK$Zr
data_Zr<-data4$Zr
Zr<-sqrt((data_Zr-MedianLBK_Zr)^2)/MedianLBK_Zr

7.3 Normabstand Rezepturen

# Kombinieren mehrerer Dataframes
Normabstand_HE<-data.frame(Probennummer,Kultur,SiO2,TiO2,Al2O3,Fe2O3,MnO,CaO,K2O,P2O5)

# Berechnen des Normabstandes pro Probe basierend auf den Hauptelementen
Normabstand_HE<-Normabstand_HE %>% rowwise() %>%  mutate(Summe = sum(c(SiO2,TiO2,Al2O3,Fe2O3,MnO,CaO,K2O,P2O5)))

# Speichern als CSV
write.csv(Normabstand_HE,"../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_RB_HE.csv",row.names=FALSE)

7.4 Normabstand Herkunft

# Kombinieren mehrerer Dataframes
Normabstand_SE<-data.frame(Probennummer,Kultur,V,Cr,Zn,Rb,Sr,Y,Zr)

# Berechnen des Normabstandes pro Probe basierend auf den Spurenelementen
Normabstand_SE<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(V,Cr,Zn,Rb,Sr,Y,Zr)))

# Speichern als CSV
write.csv(Normabstand_SE,"../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_RB_SE.csv",row.names=FALSE)

8 Abb. 6-122

8.1 Zusammenstellen der Daten

# Daten einlesen und filtern
data1<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_RB_HE.csv")
data2<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage//Daten_RB_vollständigMW.csv")
data3<-subset(data2, Kultur %in% c("LBK","La Hoguette"))
data4<-data3[,c(1,3:23)]

# Kombinieren mehrerer Dataframes basierend auf der Probennummer
data<-merge(data1,data4, by="Probennummer", all=TRUE)

# Entfernen von ".y" aus den Spaltennamen
colnames(data) <- gsub(".y", "", colnames(data))

# Spaltennamen "Summe" durch "Normabst" ersetzen
colnames(data) <- gsub("Summe", "Normabst", colnames(data))

# Speichern als CSV
write.csv(data,"../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_HE_RB_mitMesswerten.csv",row.names=FALSE)

Die weitere Einteilung der Proben in die chemischen Rezepturen beginnend mit Modell 1 erfolgte in Excel.

8.2 Histogramm

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_HE_RB_mitMesswerten.csv")

# Berechnung der unteren (25%) und oberen (75%) Quartile für die Spalte "Normabst"
Normabst0 <- (data) %>%
  dplyr::summarise(lower = quantile(Normabst, probs = .25),
            upper = quantile(Normabst, probs = .75))

# Diagramm erstellen  
Hist_NormHE_Keramik_LBKI<-ggplot(data,aes(x=Normabst))+
  geom_histogram(fill="lightgrey", color="black",binwidth=0.5,bins=NULL)+ # Manuelle Definition der Farbe der Balken
  ylab("Häufigkeit")+# Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches Design
  scale_x_continuous(breaks=seq(0,36,2))+
  scale_y_continuous(breaks=seq(0,150,10))+ # Manuelle Definition der Achsen
 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_vline(aes(xintercept=median(Normabst)),color="blue", linetype="dashed", linewidth=1)+theme(axis.title.x=element_blank())+ # Vertikale Markierung des Medians
  geom_vline(data=Normabst0, aes(xintercept=lower), color="red", linetype="dotted", linewidth=1)+ # Vertikale Markierung des 25%-Quartils
  geom_vline(data=Normabst0, aes(xintercept=upper), color="red", linetype="dotted", linewidth=1) # Vertikale Markierung des 75%-Quartils

# Berechnung der unteren (25%) und oberen (75%) Quartile für die Spalte "Normabst" nach Kultur
Normabst1 <- (data) %>%
  group_by(Kultur) %>%
  dplyr::summarise(lower = quantile(Normabst, probs = .25),
            upper = quantile(Normabst, probs = .75))

# Diagramm erstellen  
Hist_NormHE_Keramik_nKultur_LBKI<-ggplot(subset(data,Kultur %in% c("La Hoguette","LBK")),aes(x=Normabst))+
  geom_histogram(fill="lightgrey", color="black",binwidth=0.5,bins=NULL)+ # Manuelle Definition der Farbe der Balken
  xlab("Distanz zur typisch bandkeramischen Rezeptur von Rottenburg 'Fröbelweg'")+ylab("Häufigkeit")+ # Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches Design
  scale_x_continuous(breaks=seq(0,36,2))+ # Manuelle Definition der Achsen
  scale_y_continuous(breaks=seq(0,150,10))+
  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
  facet_grid(Kultur~.)+theme(strip.text.y = element_text(angle = 0),strip.background = element_rect(colour="white", fill="white"))+ # Facettierung nach Kategorien
  geom_vline(data=ddply(subset(data,Kultur %in% c("La Hoguette","LBK")), "Kultur", dplyr::summarise, grp.median=median(Normabst)), aes(xintercept=grp.median),color="blue", linetype="dashed", linewidth=1)+ # Vertikale Markierung des Medians nach Kategorien
  geom_vline(data=Normabst1, aes(xintercept=lower), color="red", linetype="dotted", linewidth=1)+ # Vertikale Markierung des 25%-Quartils nach Kategorien
  geom_vline(data=Normabst1, aes(xintercept=upper), color="red", linetype="dotted", linewidth=1)+ # Vertikale Markierung des 75%-Quartils nach Kategorien
  labs(subtitle=paste("Kruskal-Wallis, p=",round(({compare_means(Normabst ~ Kultur,aes(x=Normabst), data=subset(data,Kultur %in% c("La Hoguette","LBK")),method="kruskal.test")$p}),6))) # Berechnen des Kruskal-Wallis-Tests inkl. p-Wert und anzeigen als Unterüberschrift

# Kombination der Diagramme 
plot_grid(Hist_NormHE_Keramik_LBKI,Hist_NormHE_Keramik_nKultur_LBKI,ncol=1,nrow=2,align = "v",axis = "lr",rel_heights=c(1,2))

# Export des kombinierten Diagramms 
ggsave("Abb.6-122.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=9,width=15.3,unit=c("cm"),dpi=1200)

8.3 Kennwerte

# Berechnen von Mittelwert und Standardabweichung für den gesamten Datensatz
data  %>% dplyr::summarise(m = mean(Normabst),sd=sd(Normabst))
         m       sd
1 5.771893 6.635049
# Berechnen von Mittelwert und Standardabweichung nach Kategorien
group_by(data, Kultur)  %>% dplyr::summarise(m = mean(Normabst),sd=sd(Normabst))
# A tibble: 2 × 3
  Kultur          m    sd
  <chr>       <dbl> <dbl>
1 LBK          2.52  2.94
2 La Hoguette 10.4   7.62
# Anzahl der Gesamtbeobachtungen
data %>% dplyr::summarise(count=n())
  count
1   268
# Anzahl der Beobachtungen pro Kategorie
data %>%  group_by(Kultur)  %>% dplyr::summarise(count=n())
# A tibble: 2 × 2
  Kultur      count
  <chr>       <int>
1 LBK           157
2 La Hoguette   111

9 Abb. 6-123

Die Einteilung der Proben in die chemischen Rezepturen erfolgte in Excel.

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_HE_RB_mitMesswerten_bearb.csv")

# Daten nach ausgewählter Spalte sortieren
data<-data[order(data$Modell1),]

# Diagramme erstellen
Modell1_HE_CaO_Fe2O3<-ggplot(data, aes(x=CaO,y=Fe2O3, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+ # Manuelle Definition von Größe und Form der Symbole
  scale_color_manual(name="Modell1",values=c("grey70","skyblue2","darkred","green4","blue","purple","wheat3"))+  # Manuelle Definition der Farbe der Symbole
  xlab("CaO in %")+ylab("Fe2O3 in %")+ # Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches 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

Modell1_HE_CaO_P2O5<-ggplot(data, aes(x=CaO,y=P2O5, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell1",values=c("grey70","skyblue2","darkred","green4","blue","purple","wheat3"))+  
  xlab("CaO in %")+ylab("P2O5 in %")+
  theme_classic()+
  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"))

Modell1_HE_Al2O3_SiO2<-ggplot(data, aes(x=Al2O3,y=SiO2, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell1",values=c("grey70","skyblue2","darkred","green4","blue","purple","wheat3"))+  
  xlab("Al2O3 in %")+ylab("SiO2 in %")+
  theme_classic()+
  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"))
  
Modell1_HE_TiO2_K2O<-ggplot(data, aes(x=TiO2,y=K2O, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell1",values=c("grey70","skyblue2","darkred","green4","blue","purple","wheat3"))+
  xlab("TiO2 in %")+ylab("K2O in %")+
  theme_classic()+
  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"))

# Kombination der Diagramme 
ggarrange(Modell1_HE_Al2O3_SiO2,Modell1_HE_CaO_P2O5,Modell1_HE_CaO_Fe2O3,Modell1_HE_TiO2_K2O,ncol=2,nrow=2,align = "hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms 
ggsave("Abb.6-123.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=11,width=15.3,unit=c("cm"),dpi=1200)

10 Abb. 6-124

Die Datei Normabstand_HE_RB_mitMesswerten_bearb wurde in Excel um die beschriebenen Veränderungen für Modell 2 erweitert.

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_HE_RB_mitMesswerten_bearb.csv")

# Daten nach ausgewählter Spalte sortieren
data<-data[order(data$Modell2),]

# Diagramme erstellen
Modell2_HE_CaO_Fe2O3<-ggplot(data, aes(x=CaO,y=Fe2O3, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+ # Manuelle Definition von Größe und Form der Symbole
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+ # Manuelle Definition der Farbe der Symbole
  xlab("CaO in %")+ylab("Fe2O3 in %")+ # Manuelle Achsenbeschriftung
 theme_classic()+ # Klassisches 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

Modell2_HE_CaO_P2O5<-ggplot(data, aes(x=CaO,y=P2O5, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+  
  xlab("CaO in %")+ylab("P2O5 in %")+
  theme_classic()+
  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"))

Modell2_HE_Al2O3_SiO2<-ggplot(data, aes(x=Al2O3,y=SiO2, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+  
  xlab("Al2O3 in %")+ylab("SiO2 in %")+
  theme_classic()+
  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"))
  
Modell2_HE_TiO2_K2O<-ggplot(data, aes(x=TiO2,y=K2O, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+
  xlab("TiO2 in %")+ylab("K2O in %")+
  theme_classic()+
  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"))

# Kombination der Diagramme 
ggarrange(Modell2_HE_Al2O3_SiO2,Modell2_HE_CaO_P2O5,Modell2_HE_CaO_Fe2O3,Modell2_HE_TiO2_K2O,ncol=2,nrow=2,align = "hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms 
ggsave("Abb.6-124.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=11,width=15.3,unit=c("cm"),dpi=1200)

11 Abb. 6-125

Die Einteilung der Proben in die chemischen Rezepturen erfolgte in Excel.

11.1 Histogramm

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_HE_RB_mitMesswerten_bearb.csv")

# Berechnung der unteren (25%) und oberen (75%) Quartile für die Spalte "Normabst"
Normabst0 <- (data) %>%
  dplyr::summarise(lower = quantile(Normabst, probs = .25),
            upper = quantile(Normabst, probs = .75))

# Diagramm erstellen  
Hist_NormHE_Keramik_LBKI<-ggplot(data,aes(x=Normabst))+
  geom_histogram(fill="lightgrey", color="black",binwidth=0.5,bins=NULL)+ # Manuelle Definition der Farbe der Balken
  ylab("Häufigkeit")+# Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches Design
  scale_x_continuous(breaks=seq(0,36,2))+
  scale_y_continuous(breaks=seq(0,150,10))+ # Manuelle Definition der Achsen
 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_vline(aes(xintercept=median(Normabst)),color="blue", linetype="dashed", linewidth=1)+theme(axis.title.x=element_blank())+ # Vertikale Markierung des Medians
  geom_vline(data=Normabst0, aes(xintercept=lower), color="red", linetype="dotted", linewidth=1)+ # Vertikale Markierung des 25%-Quartils
  geom_vline(data=Normabst0, aes(xintercept=upper), color="red", linetype="dotted", linewidth=1) # Vertikale Markierung des 75%-Quartils

# Berechnung der unteren (25%) und oberen (75%) Quartile für die Spalte "Normabst" nach Modell2
Normabst10 <- (data) %>%
  group_by(Modell2) %>%
  dplyr::summarise(lower = quantile(Normabst, probs = .25),
            upper = quantile(Normabst, probs = .75))
 
# Diagramm erstellen 
Hist_Modell2<-ggplot(data,aes(x=Normabst))+
  geom_histogram(fill="lightgrey", color="black",binwidth=0.5,bins=NULL)+ # Manuelle Definition der Farbe der Balken
  xlab("Distanz zur typisch bandkeramischen Rezeptur von Rottenburg 'Fröbelweg'")+ylab("Häufigkeit")+ # Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches Design
  scale_x_continuous(breaks=seq(0,36,2))+ # Manuelle Definition der Achsen
  scale_y_continuous(breaks=seq(0,150,10))+
  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
  facet_grid(Modell2~.)+theme(strip.text.y = element_text(angle = 0),strip.background = element_rect(colour="white", fill="white"))+ # Facettierung nach Kategorien
  geom_vline(data=ddply(data,"Modell2", dplyr::summarise, grp.median=median(Normabst)), aes(xintercept=grp.median),color="blue", linetype="dashed", linewidth=1)+ # Vertikale Markierung des Medians nach Kategorien
  geom_vline(data=Normabst10, aes(xintercept=lower), color="red", linetype="dotted", linewidth=1)+ # Vertikale Markierung des 25%-Quartils nach Kategorien
  geom_vline(data=Normabst10, aes(xintercept=upper), color="red", linetype="dotted", linewidth=1) # Vertikale Markierung des 75%-Quartils nach Kategorien

# Kombination der Diagramme 
plot_grid(Hist_NormHE_Keramik_LBKI,Hist_Modell2,ncol=1,nrow=2,align = "v",axis = "lr",rel_heights=c(1,7))

# Export des kombinierten Diagramms
ggsave("Abb.6-125.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=22,width=15.3,unit=c("cm"),dpi=1200)

11.2 Kennwerte

# Berechnen von Mittelwert und Standardabweichung für den gesamten Datensatz
data  %>% dplyr::summarise(m = mean(Normabst),sd=sd(Normabst))
         m       sd
1 5.771893 6.635049
# Berechnen von Mittelwert und Standardabweichung nach Kategorien
group_by(data, Modell2)  %>% dplyr::summarise(m = mean(Normabst),sd=sd(Normabst))
# A tibble: 9 × 3
  Modell2         m     sd
  <chr>       <dbl>  <dbl>
1 Rezeptur 1a  1.83  0.953
2 Rezeptur 1b  4.87  1.02 
3 Rezeptur 1c  5.08  1.08 
4 Rezeptur 2  16.4   5.37 
5 Rezeptur 3   8.98 NA    
6 Rezeptur 4  13.7   0.511
7 Rezeptur 5  15.1   0.637
8 Rezeptur 6  19.9  NA    
9 Rezeptur 7  27.7  NA    
# Anzahl der Gesamtbeobachtungen
data %>% dplyr::summarise(count=n())
  count
1   268
# Anzahl der Beobachtungen pro Kategorie
data %>%  group_by(Modell2)  %>% dplyr::summarise(count=n())
# A tibble: 9 × 2
  Modell2     count
  <chr>       <int>
1 Rezeptur 1a   163
2 Rezeptur 1b    33
3 Rezeptur 1c     8
4 Rezeptur 2     56
5 Rezeptur 3      1
6 Rezeptur 4      2
7 Rezeptur 5      3
8 Rezeptur 6      1
9 Rezeptur 7      1

12 Berechnen des Test für Modell 2 (Modell 3)

12.1 Zusammenstellen der Daten

# Daten einlesen und filtern
data1<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_HE_RB_mitMesswerten_bearb.csv")
data<-data1[,c(3:10,34),]

# Umbennennen der Spaltenköpfe
data<-data %>% dplyr::rename(Si=1,Al=2,Ti=3,Fe=4,Mn=5,Ca=6,K=7,P=8)

# Definieren relevanter Variablen
Probennummer<-data1$Probennummer
Kultur<-data1$Kultur

# Berechnung des Medians der Gruppen nach Modell 2
MedianGruppenMod3<-(data) %>%
  group_by(Modell2) %>%
  dplyr::summarise(across(everything(),list(median=median))) 

# Entfernen von "_median" aus den Spaltennamen
colnames(MedianGruppenMod3) <- gsub("_median", "", colnames(MedianGruppenMod3))

12.2 Normabstand berechnen - Rezeptur 1a

# Filtern nach den Daten von Rezeptur 1a
MedianRezeptur1aMod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 1a")

# Extrahieren des Medians von Rezepetur 1a für SiO2
MedianRezeptur1aMod3_Si<-MedianRezeptur1aMod3$Si

# Extrahieren der Messwerte für SiO2
data_Si<-data$Si

# Berechnen des Multivariaten Normabstandes für jede Probe zum Median von Rezeptur 1a von SiO2
Si<-sqrt((data_Si-MedianRezeptur1aMod3_Si)^2)

MedianRezeptur1aMod3_Ti<-MedianRezeptur1aMod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur1aMod3_Ti)^2)

MedianRezeptur1aMod3_Al<-MedianRezeptur1aMod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur1aMod3_Al)^2)

MedianRezeptur1aMod3_Fe<-MedianRezeptur1aMod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur1aMod3_Fe)^2)

MedianRezeptur1aMod3_Mn<-MedianRezeptur1aMod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur1aMod3_Mn)^2)

MedianRezeptur1aMod3_Ca<-MedianRezeptur1aMod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur1aMod3_Ca)^2)

MedianRezeptur1aMod3_K<-MedianRezeptur1aMod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur1aMod3_K)^2)

MedianRezeptur1aMod3_P<-MedianRezeptur1aMod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur1aMod3_P)^2)

# Kombinieren mehrerer Dataframes
Normabstand_SE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)

# Berechnen des Normabstandes zum Median von Rezeptur 1a pro Probe basierend auf den Hauptelementen
Normabstand_Rez1a_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))

# Definieren der Summe als Variable
Normabstand_Rez1a<-Normabstand_Rez1a_Tabelle$Summe

12.3 Normabstand berechnen - Rezeptur 1b

MedianRezeptur1bMod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 1b")

MedianRezeptur1bMod3_Si<-MedianRezeptur1bMod3$Si
data_Si<-data$Si
Si<-sqrt((data_Si-MedianRezeptur1bMod3_Si)^2)

MedianRezeptur1bMod3_Ti<-MedianRezeptur1bMod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur1bMod3_Ti)^2)

MedianRezeptur1bMod3_Al<-MedianRezeptur1bMod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur1bMod3_Al)^2)

MedianRezeptur1bMod3_Fe<-MedianRezeptur1bMod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur1bMod3_Fe)^2)

MedianRezeptur1bMod3_Mn<-MedianRezeptur1bMod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur1bMod3_Mn)^2)

MedianRezeptur1bMod3_Ca<-MedianRezeptur1bMod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur1bMod3_Ca)^2)

MedianRezeptur1bMod3_K<-MedianRezeptur1bMod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur1bMod3_K)^2)

MedianRezeptur1bMod3_P<-MedianRezeptur1bMod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur1bMod3_P)^2)

Normabstand_SE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)
Normabstand_Rez1b_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))
Normabstand_Rez1b<-Normabstand_Rez1b_Tabelle$Summe

12.4 Normabstand berechnen - Rezeptur 1c

MedianRezeptur1cMod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 1c")

MedianRezeptur1cMod3_Si<-MedianRezeptur1cMod3$Si
data_Si<-data$Si
Si<-sqrt((data_Si-MedianRezeptur1cMod3_Si)^2)

MedianRezeptur1cMod3_Ti<-MedianRezeptur1cMod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur1cMod3_Ti)^2)

MedianRezeptur1cMod3_Al<-MedianRezeptur1cMod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur1cMod3_Al)^2)

MedianRezeptur1cMod3_Fe<-MedianRezeptur1cMod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur1cMod3_Fe)^2)

MedianRezeptur1cMod3_Mn<-MedianRezeptur1cMod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur1cMod3_Mn)^2)

MedianRezeptur1cMod3_Ca<-MedianRezeptur1cMod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur1cMod3_Ca)^2)

MedianRezeptur1cMod3_K<-MedianRezeptur1cMod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur1cMod3_K)^2)

MedianRezeptur1cMod3_P<-MedianRezeptur1cMod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur1cMod3_P)^2)

Normabstand_SE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)
Normabstand_Rez1c_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))
Normabstand_Rez1c<-Normabstand_Rez1c_Tabelle$Summe

12.5 Normabstand berechnen - Rezeptur 2

MedianRezeptur2Mod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 2")

MedianRezeptur2Mod3_Si<-MedianRezeptur2Mod3$Si
data_Si<-data$Si
Si<-sqrt((data_Si-MedianRezeptur2Mod3_Si)^2)

MedianRezeptur2Mod3_Ti<-MedianRezeptur2Mod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur2Mod3_Ti)^2)

MedianRezeptur2Mod3_Al<-MedianRezeptur2Mod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur2Mod3_Al)^2)

MedianRezeptur2Mod3_Fe<-MedianRezeptur2Mod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur2Mod3_Fe)^2)

MedianRezeptur2Mod3_Mn<-MedianRezeptur2Mod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur2Mod3_Mn)^2)

MedianRezeptur2Mod3_Ca<-MedianRezeptur2Mod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur2Mod3_Ca)^2)

MedianRezeptur2Mod3_K<-MedianRezeptur2Mod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur2Mod3_K)^2)

MedianRezeptur2Mod3_P<-MedianRezeptur2Mod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur2Mod3_P)^2)

Normabstand_SE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)
Normabstand_Rez2_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))
Normabstand_Rez2<-Normabstand_Rez2_Tabelle$Summe

12.6 Normabstand berechnen - Rezeptur 3

MedianRezeptur3Mod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 3")

MedianRezeptur3Mod3_Si<-MedianRezeptur3Mod3$Si
data_Si<-data$Si
Si<-sqrt((data_Si-MedianRezeptur3Mod3_Si)^2)

MedianRezeptur3Mod3_Ti<-MedianRezeptur3Mod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur3Mod3_Ti)^2)

MedianRezeptur3Mod3_Al<-MedianRezeptur3Mod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur3Mod3_Al)^2)

MedianRezeptur3Mod3_Fe<-MedianRezeptur3Mod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur3Mod3_Fe)^2)

MedianRezeptur3Mod3_Mn<-MedianRezeptur3Mod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur3Mod3_Mn)^2)

MedianRezeptur3Mod3_Ca<-MedianRezeptur3Mod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur3Mod3_Ca)^2)

MedianRezeptur3Mod3_K<-MedianRezeptur3Mod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur3Mod3_K)^2)

MedianRezeptur3Mod3_P<-MedianRezeptur3Mod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur3Mod3_P)^2)

Normabstand_SE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)
Normabstand_Rez3_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))
Normabstand_Rez3<-Normabstand_Rez3_Tabelle$Summe

12.7 Normabstand berechnen - Rezeptur 4

MedianRezeptur4Mod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 4")

MedianRezeptur4Mod3_Si<-MedianRezeptur4Mod3$Si
data_Si<-data$Si
Si<-sqrt((data_Si-MedianRezeptur4Mod3_Si)^2)

MedianRezeptur4Mod3_Ti<-MedianRezeptur4Mod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur4Mod3_Ti)^2)

MedianRezeptur4Mod3_Al<-MedianRezeptur4Mod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur4Mod3_Al)^2)

MedianRezeptur4Mod3_Fe<-MedianRezeptur4Mod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur4Mod3_Fe)^2)

MedianRezeptur4Mod3_Mn<-MedianRezeptur4Mod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur4Mod3_Mn)^2)

MedianRezeptur4Mod3_Ca<-MedianRezeptur4Mod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur4Mod3_Ca)^2)

MedianRezeptur4Mod3_K<-MedianRezeptur4Mod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur4Mod3_K)^2)

MedianRezeptur4Mod3_P<-MedianRezeptur4Mod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur4Mod3_P)^2)

Normabstand_SE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)
Normabstand_Rez4_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))
Normabstand_Rez4<-Normabstand_Rez4_Tabelle$Summe

12.8 Normabstand berechnen - Rezeptur 5

MedianRezeptur5Mod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 5")

MedianRezeptur5Mod3_Si<-MedianRezeptur5Mod3$Si
data_Si<-data$Si
Si<-sqrt((data_Si-MedianRezeptur5Mod3_Si)^2)

MedianRezeptur5Mod3_Ti<-MedianRezeptur5Mod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur5Mod3_Ti)^2)

MedianRezeptur5Mod3_Al<-MedianRezeptur5Mod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur5Mod3_Al)^2)

MedianRezeptur5Mod3_Fe<-MedianRezeptur5Mod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur5Mod3_Fe)^2)

MedianRezeptur5Mod3_Mn<-MedianRezeptur5Mod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur5Mod3_Mn)^2)

MedianRezeptur5Mod3_Ca<-MedianRezeptur5Mod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur5Mod3_Ca)^2)

MedianRezeptur5Mod3_K<-MedianRezeptur5Mod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur5Mod3_K)^2)

MedianRezeptur5Mod3_P<-MedianRezeptur5Mod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur5Mod3_P)^2)

Normabstand_SE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)
Normabstand_Rez5_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))
Normabstand_Rez5<-Normabstand_Rez5_Tabelle$Summe

12.9 Normabstand berechnen - Rezeptur 6

MedianRezeptur6Mod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 6")

MedianRezeptur6Mod3_Si<-MedianRezeptur6Mod3$Si
data_Si<-data$Si
Si<-sqrt((data_Si-MedianRezeptur6Mod3_Si)^2)

MedianRezeptur6Mod3_Ti<-MedianRezeptur6Mod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur6Mod3_Ti)^2)

MedianRezeptur6Mod3_Al<-MedianRezeptur6Mod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur6Mod3_Al)^2)

MedianRezeptur6Mod3_Fe<-MedianRezeptur6Mod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur6Mod3_Fe)^2)

MedianRezeptur6Mod3_Mn<-MedianRezeptur6Mod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur6Mod3_Mn)^2)

MedianRezeptur6Mod3_Ca<-MedianRezeptur6Mod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur6Mod3_Ca)^2)

MedianRezeptur6Mod3_K<-MedianRezeptur6Mod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur6Mod3_K)^2)

MedianRezeptur6Mod3_P<-MedianRezeptur6Mod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur6Mod3_P)^2)

Normabstand_SE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)
Normabstand_Rez6_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))
Normabstand_Rez6<-Normabstand_Rez6_Tabelle$Summe

12.10 Normabstand berechnen - Rezeptur 7

MedianRezeptur7Mod3<-filter(MedianGruppenMod3, Modell2=="Rezeptur 7")

MedianRezeptur7Mod3_Si<-MedianRezeptur7Mod3$Si
data_Si<-data$Si
Si<-sqrt((data_Si-MedianRezeptur7Mod3_Si)^2)

MedianRezeptur7Mod3_Ti<-MedianRezeptur7Mod3$Ti
data_Ti<-data$Ti
Ti<-sqrt((data_Ti-MedianRezeptur7Mod3_Ti)^2)

MedianRezeptur7Mod3_Al<-MedianRezeptur7Mod3$Al
data_Al<-data$Al
Al<-sqrt((data_Al-MedianRezeptur7Mod3_Al)^2)

MedianRezeptur1aMod3_Fe<-MedianRezeptur7Mod3$Fe
data_Fe<-data$Fe
Fe<-sqrt((data_Fe-MedianRezeptur1aMod3_Fe)^2)

MedianRezeptur7Mod3_Mn<-MedianRezeptur7Mod3$Mn
data_Mn<-data$Mn
Mn<-sqrt((data_Mn-MedianRezeptur7Mod3_Mn)^2)

MedianRezeptur7Mod3_Ca<-MedianRezeptur7Mod3$Ca
data_Ca<-data$Ca
Ca<-sqrt((data_Ca-MedianRezeptur7Mod3_Ca)^2)

MedianRezeptur7Mod3_K<-MedianRezeptur7Mod3$K
data_K<-data$K
K<-sqrt((data_K-MedianRezeptur7Mod3_K)^2)

MedianRezeptur7Mod3_P<-MedianRezeptur7Mod3$P
data_P<-data$P
P<-sqrt((data_P-MedianRezeptur7Mod3_P)^2)

Normabstand_HE<-data.frame(Probennummer,Kultur,Si,Ti,Al,Fe,Mn,Ca,K,P)
Normabstand_Rez7_Tabelle<-Normabstand_SE %>% rowwise() %>%  mutate(Summe = sum(c(Si,Ti,Al,Fe,Mn,Ca,K,P)))
Normabstand_Rez7<-Normabstand_Rez7_Tabelle$Summe

12.11 Zusammenführen der Variablen

# Kombinieren mehrerer Dataframes
NormabstandGruppenMod3<-data.frame(Normabstand_Rez1a,Normabstand_Rez1b,Normabstand_Rez1c,Normabstand_Rez2,Normabstand_Rez3,Normabstand_Rez4,Normabstand_Rez5,Normabstand_Rez6,Normabstand_Rez7)

12.12 Zuweisen der Funde zum geringsten Normabstand

# Bestimmen der Rezeptur mit dem kleinsten Normabstand für jede Probe
Min<-colnames(NormabstandGruppenMod3)[apply(NormabstandGruppenMod3,1,which.min)]

# Definieren der Summe als Variable
data1$Modell3<-Min

# Spaltennamen "Normabstand_Rez" durch "Rezeptur" ersetzen
data1$Modell3<-gsub("Normabstand_Rez","Rezeptur ",data1$Modell3)

# Speichern als CSV
write.csv(data1,"../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//TestRezepturen_RB_Abstmaß.csv",row.names=FALSE)

13 Abb. 6-126

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//TestRezepturen_RB_Abstmaß.csv")

# Daten nach ausgewählter Spalte sortieren
data<-data[order(data$Modell3),]

# Diagramme erstellen
Modell3_HE_CaO_Fe2O3<-ggplot(data, aes(x=CaO,y=Fe2O3, color=Modell3, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+ # Manuelle Definition von Größe und Form der Symbole
  scale_color_manual(name="Modell3",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+ # Manuelle Definition der Farbe der Symbole
  xlab("CaO in %")+ylab("Fe2O3 in %")+ # Manuelle Achsenbeschriftung
 theme_classic()+ # Klassisches 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

Modell3_HE_CaO_P2O5<-ggplot(data, aes(x=CaO,y=P2O5, color=Modell3, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell3",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+  
  xlab("CaO in %")+ylab("P2O5 in %")+
  theme_classic()+
  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"))

Modell3_HE_Al2O3_SiO2<-ggplot(data, aes(x=Al2O3,y=SiO2, color=Modell3, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell3",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+  
  xlab("Al2O3 in %")+ylab("SiO2 in %")+
  theme_classic()+
  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"))
  
Modell3_HE_TiO2_K2O<-ggplot(data, aes(x=TiO2,y=K2O, color=Modell3, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell3",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+
  xlab("TiO2 in %")+ylab("K2O in %")+
  theme_classic()+
  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"))

# Kombination der Diagramme 
ggarrange(Modell3_HE_Al2O3_SiO2,Modell3_HE_CaO_P2O5,Modell3_HE_CaO_Fe2O3,Modell3_HE_TiO2_K2O,ncol=2,nrow=2,align = "hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms 
ggsave("Abb.6-126.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=11,width=15.3,unit=c("cm"),dpi=1200)

14 Dunns Test für Modell 2

# Daten einlesen und filtern
data1<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//TestRezepturen_RB_Abstmaß.csv")
data2<-data1[,c(11,34),]

# Berechnung der deskriptiven Statistik für Modell 2
data2 %>% 
  group_by(Modell2) %>%
  get_summary_stats(Normabst, type = "common")
# A tibble: 9 × 11
  Modell2   variable     n    min   max median   iqr  mean     sd     se      ci
  <chr>     <fct>    <dbl>  <dbl> <dbl>  <dbl> <dbl> <dbl>  <dbl>  <dbl>   <dbl>
1 Rezeptur… Normabst   163  0.625  6.48   1.56 0.84   1.83  0.953  0.075   0.147
2 Rezeptur… Normabst    33  2.85   6.88   4.85 1.24   4.87  1.02   0.178   0.362
3 Rezeptur… Normabst     8  3.98   6.49   4.72 2.06   5.08  1.08   0.383   0.905
4 Rezeptur… Normabst    56  6.80  25.7   16.4  8.43  16.4   5.37   0.717   1.44 
5 Rezeptur… Normabst     1  8.98   8.98   8.98 0      8.98 NA     NA     NaN    
6 Rezeptur… Normabst     2 13.3   14.1   13.7  0.361 13.7   0.511  0.361   4.59 
7 Rezeptur… Normabst     3 14.4   15.6   15.2  0.62  15.1   0.637  0.368   1.58 
8 Rezeptur… Normabst     1 19.9   19.9   19.9  0     19.9  NA     NA     NaN    
9 Rezeptur… Normabst     1 27.7   27.7   27.7  0     27.7  NA     NA     NaN    
# Durchführung des Kruskal-Wallis-Tests    
res.kruskal<-data2%>%kruskal_test(Normabst~Modell2)
res.kruskal
# A tibble: 1 × 6
  .y.          n statistic    df        p method        
* <chr>    <int>     <dbl> <int>    <dbl> <chr>         
1 Normabst   268      197.     8 2.63e-38 Kruskal-Wallis
# Berechnung der Effektgröße
data2%>%kruskal_effsize(Normabst~Modell2)
# A tibble: 1 × 5
  .y.          n effsize method  magnitude
* <chr>    <int>   <dbl> <chr>   <ord>    
1 Normabst   268   0.730 eta2[H] large    
# Durchführung des Dunn-Tests für paarweise Vergleiche mit Bonferroni-Korrektur
pwc<-data2%>%dunn_test(Normabst~Modell2,p.adjust.method="bonferroni")
pwc
# A tibble: 36 × 9
   .y.      group1   group2    n1    n2 statistic        p    p.adj p.adj.signif
 * <chr>    <chr>    <chr>  <int> <int>     <dbl>    <dbl>    <dbl> <chr>       
 1 Normabst Rezeptu… Rezep…   163    33    6.52   7.11e-11 2.56e- 9 ****        
 2 Normabst Rezeptu… Rezep…   163     8    3.51   4.52e- 4 1.63e- 2 *           
 3 Normabst Rezeptu… Rezep…   163    56   12.8    1.16e-37 4.19e-36 ****        
 4 Normabst Rezeptu… Rezep…   163     1    1.67   9.46e- 2 1   e+ 0 ns          
 5 Normabst Rezeptu… Rezep…   163     2    2.53   1.14e- 2 4.12e- 1 ns          
 6 Normabst Rezeptu… Rezep…   163     3    3.22   1.26e- 3 4.54e- 2 *           
 7 Normabst Rezeptu… Rezep…   163     1    2.13   3.28e- 2 1   e+ 0 ns          
 8 Normabst Rezeptu… Rezep…   163     1    2.38   1.74e- 2 6.25e- 1 ns          
 9 Normabst Rezeptu… Rezep…    33     8    0.0660 9.47e- 1 1   e+ 0 ns          
10 Normabst Rezeptu… Rezep…    33    56    3.38   7.16e- 4 2.58e- 2 *           
# ℹ 26 more rows
# Speichern als CSV
write.csv(pwc,"../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//TestRezepturen_RB_Dunn.csv",row.names=FALSE)

15 Abb. 6-127

15.1 Zusammenstellen der Daten

# Daten einlesen und filtern
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//TestRezepturen_RB_Abstmaß.csv")
data2<-data[,c(12:16,18:20,34),]

# Variationskoeffizient-Funktion mit Fehlerbehandlung
Varkoef <- function(x) { (sd(x, na.rm = TRUE) / mean(x, na.rm = TRUE)) * 100 }

# Berechnung der Kennwerte
KennwerteRezeptur<-(data2) %>%
  group_by(Modell2) %>%
  dplyr::summarise(across(everything(),list(Varkoef=Varkoef,Mittelwert=mean,stabw=sd, Median=median)))

# Erste Zeilen der Tabelle anziegen
head(KennwerteRezeptur)
# A tibble: 6 × 33
  Modell2     SiO2_Varkoef SiO2_Mittelwert SiO2_stabw SiO2_Median TiO2_Varkoef
  <chr>              <dbl>           <dbl>      <dbl>       <dbl>        <dbl>
1 Rezeptur 1a         7.51            60.3       4.53        60.8       14.4  
2 Rezeptur 1b        12.1             50.2       6.06        49.8       17.6  
3 Rezeptur 1c        11.9             56.5       6.71        59.1       16.9  
4 Rezeptur 2         13.3             45.3       6.03        44.8       20.5  
5 Rezeptur 3         NA               46.6      NA           46.6       NA    
6 Rezeptur 4          3.15            45.5       1.44        45.5        0.164
# ℹ 27 more variables: TiO2_Mittelwert <dbl>, TiO2_stabw <dbl>,
#   TiO2_Median <dbl>, Al2O3_Varkoef <dbl>, Al2O3_Mittelwert <dbl>,
#   Al2O3_stabw <dbl>, Al2O3_Median <dbl>, Fe2O3_Varkoef <dbl>,
#   Fe2O3_Mittelwert <dbl>, Fe2O3_stabw <dbl>, Fe2O3_Median <dbl>,
#   MnO_Varkoef <dbl>, MnO_Mittelwert <dbl>, MnO_stabw <dbl>, MnO_Median <dbl>,
#   CaO_Varkoef <dbl>, CaO_Mittelwert <dbl>, CaO_stabw <dbl>, CaO_Median <dbl>,
#   K2O_Varkoef <dbl>, K2O_Mittelwert <dbl>, K2O_stabw <dbl>, …
# Speichern als CSV
write.csv(KennwerteRezeptur,"../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//KennwerteRezeptur_RB.csv",row.names=FALSE)

15.2 Erstellen Abb. 6-127

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//KennwerteRezeptur_RB.csv")

# Diagramme erstellen
Rezeptur_Errorplot_TiO2_K2O<-ggplot(data, aes(x=TiO2_Mittelwert,y=K2O_Mittelwert, color=Modell2,
                                              xmin = TiO2_Mittelwert-TiO2_stabw, xmax = TiO2_Mittelwert+TiO2_stabw, # Fehlerbalken links und rechts                 
                                              ymin=K2O_Mittelwert-K2O_stabw,ymax=K2O_Mittelwert+K2O_stabw))+ # Fehlerbalken unten und oben
  geom_errorbar(width=.01)+geom_errorbarh(height=.1)+ # Länge der Fehlerbalken
  geom_point()+ # Hinzufügen der Symbole
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+ # Manuelle Definition der Farbe der Symbole
  geom_text(aes(label=Modell2),hjust=-0.1, vjust=-0.3,size=2.75)+ # Manuelle Beschriftung der Symbole  
  xlab("TiO2 in %")+ylab("K2O in %")+ # Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches Design 
  theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.position = "none")+theme(axis.ticks=element_line(size=0.25,colour="black")) # Manuelle Formatierung von Achsen- und Legendendarstellung

Rezeptur_Errorplot_Al2O3_SiO2<-ggplot(data, aes(x=Al2O3_Mittelwert,y=SiO2_Mittelwert, color=Modell2,
                                                xmin = Al2O3_Mittelwert-Al2O3_stabw, xmax = Al2O3_Mittelwert+Al2O3_stabw,
                                                ymin=SiO2_Mittelwert-SiO2_stabw, ymax=SiO2_Mittelwert+SiO2_stabw))+
  geom_errorbar(width=.1)+geom_errorbarh(height=.9)+  
  geom_point()+ 
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+
  geom_text(aes(label=Modell2),hjust=-0.1, vjust=-0.3,size=2.75)+  
  xlab("Al2O3 in %")+ylab("SiO2 in %")+
  theme_classic()+
  theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.position = "none")+theme(axis.ticks=element_line(size=0.25,colour="black"))

Rezeptur_Errorplot_CaO_Fe2O3<-ggplot(data, aes(x=CaO_Mittelwert,y=Fe2O3_Mittelwert, color=Modell2, 
                                               xmin = CaO_Mittelwert-CaO_stabw, xmax = CaO_Mittelwert+CaO_stabw,
                                               ymin=Fe2O3_Mittelwert-Fe2O3_stabw, ymax=Fe2O3_Mittelwert+Fe2O3_stabw))+
  geom_errorbar(width=.2)+geom_errorbarh(height=.2)+
  geom_point()+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+
  geom_text(aes(label=Modell2),hjust=-0.1, vjust=-0.3,size=2.75)+
  xlab("CaO in %")+ylab("Fe2O3 in %")+
  theme_classic()+theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.position = "none")+theme(axis.ticks=element_line(size=0.25,colour="black"))

Rezeptur_Errorplot_CaO_P2O5<-ggplot(data, aes(x=CaO_Mittelwert,y=P2O5_Mittelwert, color=Modell2, 
                                              xmin = CaO_Mittelwert-CaO_stabw, xmax = CaO_Mittelwert+CaO_stabw,
                                              ymin=P2O5_Mittelwert-P2O5_stabw, ymax=P2O5_Mittelwert+P2O5_stabw))+
  geom_errorbar(width=.2)+geom_errorbarh(height=.3)+ 
  geom_point()+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+
  geom_text(aes(label=Modell2),hjust=-0.1, vjust=-0.3,size=2.75)+
  xlab("CaO in %")+ylab("P2O5 in %")+
  theme_classic()+
  theme(axis.line=element_line(colour="black",size=0.25))+theme(legend.position = "none")+theme(axis.ticks=element_line(size=0.25,colour="black"))

# Kombination der Diagramme
ggarrange(Rezeptur_Errorplot_Al2O3_SiO2,Rezeptur_Errorplot_CaO_P2O5,Rezeptur_Errorplot_CaO_Fe2O3,Rezeptur_Errorplot_TiO2_K2O,ncol=2,nrow=2,align = "hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms 
ggsave("Abb.6-127.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=11,width=15.3,unit=c("cm"),dpi=1200)

16 Abb. 6-128

16.1 Zusammenstellen der Daten

# Daten einlesen und filtern
data1<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_vollständigMW.csv")
data2<-subset(data1, Kultur %in% c("LBK","La Hoguette"))
data3<-data2[,c(1,3:84),]

# Daten einlesen und filtern
data4<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Normabstand_HE_RB_mitMesswerten_bearb.csv")
data5<-data4[,c(1,34),]

# Kombinieren mehrerer Dataframes basierend auf der Probennummer
data8<-merge(data3,data5, by="Probennummer", all=TRUE)

# Speichern als CSV
write.csv(data8,"../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv",row.names=FALSE)

16.2 Erstellen Abb. 6-128

# Daten einlesen
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv")

# Diagramme erstellen
Part1<-ggplot(data)+ geom_bar(aes(x=Modell2),fill="sienna4",color="black")+ # Manuelle Definition der Farbe der Balken
  geom_text(aes(x=Modell2,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
  xlab("Chemische Rezepturen")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,160,20),expand=c(0,0), limits=c(0,168))+ # Manuelle Definition der Y-Achse
  theme_classic()+  # Klassisches 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_blank())+ theme(legend.position="none")+ theme(axis.ticks=element_line(size=0.25,colour="black"))+theme(axis.text.x = element_blank()) # Manuelle Formatierung von Achsen- und Legendendarstellung

Part2<-ggplot(data)+ geom_bar(aes(fill=Kultur, x=Modell2),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+
  scale_fill_manual(values = c("La Hoguette" = "grey20", "LBK" = "lightgrey"))+ # Manuelle Definition der Farbe der Balken
  geom_text(aes(mapping=Kultur, x=Modell2,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
  xlab("Chemische Rezepturen")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,145,20),expand=c(0,0), limits=c(0,145))+ # Manuelle Definition der Y-Achse
  theme_classic()+  # Klassisches 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)) # Vertikale Darstellung der X-Achsenbeschriftung

# Kombination der Diagramme 
plot_grid(Part1,Part2,ncol=1,nrow=2,align = "v",axis = "lr",rel_heights=c(1,2))

# Export des kombinierten Diagramms
ggsave("Abb.6-128.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=10,width=8,unit=c("cm"),dpi=1200)

17 Abb. 6-129 - Statistik

# Daten einlesen und filtern
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv")
Tab1<-data[,c(26,66),]

# Erstellen der Tabelle
Tab2<-Tab1 %>% dplyr::count(Gruppe.Magerung,Kultur) # Berechnen wie häufig die jeweiligen Magerungsarten für La Hoguette und Bandkeramik vorkommen
Tab3<-Tab2 %>% group_by(Kultur) %>% mutate(percent = prop.table(n)) # Berechnen der prozentualen Anteile je Magerungsart für La Hoguette und Bandkeramik

# Export der Tabelle
write.csv(Tab3,"../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//Tab_Abb_6_129.csv",row.names=FALSE)

18 Abb. 6-130

# Daten einlesen
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv")

# Diagramm erstellen
ggplot(data)+ geom_bar(aes(fill=Modell2, x=Gruppe.Magerung),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+
  scale_fill_manual(values = c("Rezeptur 1a" = "grey70", "Rezeptur 1b" = "grey51","Rezeptur 1c"="grey11","Rezeptur 2"="skyblue2","Rezeptur 3"="blue", "Rezeptur 4"="darkred","Rezeptur 5"="orange","Rezeptur 6"="purple","Rezeptur 7"="wheat3"))+ # Manuelle Definition der Farbe der Balken
  geom_text(aes(mapping=Modell2, x=Gruppe.Magerung,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
  xlab("Warenart")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,32,5),expand=c(0,0), limits=c(0,23))+ # Manuelle Definition der Y-Achse
  theme_classic()+ # Klassisches 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.3,hjust=0.3)) # Vertikale Darstellung der X-Achsenbeschriftung

# Export des Diagramms 
ggsave("Abb.6-130.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=11,width=15.3,unit=c("cm"),dpi=1200)

19 Abb. 6-131

# Daten einlesen und filtern
data3<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv")
data2<-data3[,c(26,36,66,84),]

# Gruppieren nach Kategorien und zählen der Häufigkeiten
data<-data2 %>% dplyr::count(Gruppe.Magerung,Modell2,Kultur,Knochen)

ggplot(data, aes(x=Modell2,y=Gruppe.Magerung, color=Knochen, shape=Kultur))+ 
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,1))+ # Manuelle Definition der Form der Symbole
  scale_color_manual(name="Knochen",values=c("black","wheat4","grey75"))+ # Manuelle Definition der Farbe der Symbole 
  xlab("Chemische Rezeptur")+ ylab("Warenart")+ # Manuelle Achsenbeschriftung
  scale_y_discrete(limits=rev)+ # Inverse Darstellung der Y-Achse
  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.3,hjust=0.3)) # Vertikale Darstellung der X-Achsenbeschriftun

ggsave("Abb.6-131.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=19,width=7,unit=c("cm"),dpi=1200)

20 Hauptkomponentenanalyse

20.1 Berechnen der log10-transformation aller Daten und Export

# Daten einlesen und filtern
data1<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv")
data2<-data1[,c(2:22),]
data4<-data1[,c(1,26,84),]

# Anwenden des log10
data3<-log10(data2)

# Spaltenweise Kombination von Dataframes
data4<- cbind(data4,data3)

# Speichern als CSV
write.csv(data4,"../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Daten_RB_log10_MW.csv",row.names=FALSE)

20.2 Hauptkomponentenanalyse

20.3 Berechnen und Zusammenstellen der PCA-DAten

# Daten einlesen
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Rezeptur//Daten_RB_log10_MW.csv")

# Durchführen der PCA für ausgewählte Spalten
myPr <- prcomp(~ SiO2+TiO2+Al2O3+Fe2O3+MnO+CaO+K2O+P2O5,data=data,scale = TRUE)
myPr
Standard deviations (1, .., p=8):
[1] 1.6796909 1.5140912 1.0544443 1.0219275 0.5478083 0.4464910 0.4279452
[8] 0.2176982

Rotation (n x k) = (8 x 8):
              PC1         PC2         PC3         PC4        PC5         PC6
SiO2   0.56767838 -0.08929781  0.01455215 -0.11463122  0.1596410 -0.37128766
TiO2  -0.13654315 -0.54684800 -0.04130528 -0.29169417  0.7359708  0.13125968
Al2O3 -0.35880340 -0.45789377  0.22377553  0.04429027 -0.2081085  0.13180941
Fe2O3 -0.33849642 -0.45022996 -0.23064828  0.15003617 -0.3747906 -0.42403428
MnO    0.05983224 -0.02145147 -0.87647161  0.32492526  0.1356738  0.06220123
CaO   -0.45260011  0.38484154 -0.07961426  0.01459918  0.1479759  0.40452416
K2O    0.08245986 -0.08574724  0.34278810  0.87823133  0.2930947  0.01944150
P2O5  -0.44782935  0.35311993  0.05256805 -0.01489581  0.3505365 -0.69271265
              PC7           PC8
SiO2   0.02011679  0.7019049928
TiO2   0.15776301 -0.1083987192
Al2O3 -0.64186317  0.3699798902
Fe2O3  0.52758110  0.0915904774
MnO   -0.31453565  0.0311765646
CaO    0.32689571  0.5900009243
K2O    0.10378337 -0.0006305942
P2O5  -0.26040647 -0.0350955485
# Eigenwerte der Hauptkomponenten
summary(myPr)
Importance of components:
                          PC1    PC2    PC3    PC4     PC5     PC6     PC7
Standard deviation     1.6797 1.5141 1.0544 1.0219 0.54781 0.44649 0.42795
Proportion of Variance 0.3527 0.2866 0.1390 0.1305 0.03751 0.02492 0.02289
Cumulative Proportion  0.3527 0.6392 0.7782 0.9087 0.94626 0.97118 0.99408
                           PC8
Standard deviation     0.21770
Proportion of Variance 0.00592
Cumulative Proportion  1.00000
# Screeplot der Eigenwerte
plot(myPr, type="l")

# Erstellen des Diagramms
autoplot(myPr, data = data, colour = 'Modell2',loadings.colour = 'black', loadings.label = TRUE, loadings.label.size = 3,loadings = TRUE)+
  geom_point(aes(shape=Kultur),size=2)+ scale_shape_manual(values=c(2,1))+ # Manuelle Definition der Form der Symbole
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3"))+ # Manuelle Definition der Farbe der Symbole
  theme_classic()+ # Klassisches 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"))+
  geom_vline(xintercept=0, color="black", size=0.25)+geom_hline(yintercept=0, color="black", size=0.25)+ # Manuelle Formatierung von Achsen- und Legendendarstellung
  geom_vline(xintercept=0, color="black", size=0.25)+geom_hline(yintercept=0, color="black", size=0.25) # Horizontale und vertikale 0-Linie einfügen

20.4 Camargo-Teststatistik

# Daten einlesen und filtern
data10<-data[,c(4:8,10:12),]

# Berechnung der Varianz für alle numerischen Spalten
data10 %>% summarise_if(is.numeric, var)
         SiO2        TiO2       Al2O3       Fe2O3        MnO       CaO
1 0.004877105 0.006053317 0.004285964 0.007975213 0.07841222 0.1448306
         K2O     P2O5
1 0.01345543 0.199682
# Durchführen des Camargo-Tests mit Hauptkomponentenanalyse (PCA)
result <- PCAtest(
  data10,   # Eingabedaten
  1000,     # Anzahl der Permutationen
  1000,     # Anzahl der Bootstrap-Resamples
  0.05,     # Signifikanzniveau
  varcorr = FALSE,  # Keine Korrektur für Variablenkorrelationen anwenden
  counter = FALSE,  # Keine Zählvariable für Iterationen anzeigen
  plot = TRUE       # Ergebnisse grafisch darstellen
)

Sampling bootstrap replicates... Please wait

Calculating confidence intervals of empirical statistics... Please wait

Sampling random permutations... Please wait

Comparing empirical statistics with their null distributions... Please wait

========================================================
Test of PCA significance: 8 variables, 268 observations
1000 bootstrap replicates, 1000 random permutations
========================================================

Empirical Psi = 7.7079, Max null Psi = 0.4036, Min null Psi = 0.0750, p-value = 0
Empirical Phi = 0.3710, Max null Phi = 0.0849, Min null Phi = 0.0366, p-value = 0

Empirical eigenvalue #1 = 2.82136, Max null eigenvalue = 1.42563, p-value = 0
Empirical eigenvalue #2 = 2.29247, Max null eigenvalue = 1.33441, p-value = 0
Empirical eigenvalue #3 = 1.11185, Max null eigenvalue = 1.19304, p-value = 0.227
Empirical eigenvalue #4 = 1.04434, Max null eigenvalue = 1.10911, p-value = 0.222
Empirical eigenvalue #5 = 0.30009, Max null eigenvalue = 1.04229, p-value = 1
Empirical eigenvalue #6 = 0.19935, Max null eigenvalue = 0.97586, p-value = 1
Empirical eigenvalue #7 = 0.18314, Max null eigenvalue = 0.92239, p-value = 1
Empirical eigenvalue #8 = 0.04739, Max null eigenvalue = 0.87127, p-value = 1

PC 1 is significant and accounts for 35.3% (95%-CI:33.2-38.8) of the total variation
PC 2 is significant and accounts for 28.7% (95%-CI:25.6-31.2) of the total variation

The first 2 PC axes are significant and account for 63.9% of the total variation

Variables 1, 3, 4, 6, and 8 have significant loadings on PC 1
Variables 2, 3, 4, 6, and 8 have significant loadings on PC 2

21 Abb. 6-132

# Daten einlesen
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv")

# Formatieren der Kontextnummern
data$HausKontext <- ifelse(data$HausKontext %in% c("26","27","51"), 
                      sprintf("%03d", as.numeric(data$HausKontext)), 
                      data$HausKontext)

# Erstellen des Diagramms
ggplot(data)+ geom_bar(aes(fill=Modell2, x=HausKontext),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+
  scale_fill_manual(values = c("Rezeptur 1a" = "grey70", "Rezeptur 1b" = "grey51","Rezeptur 1c"="grey11","Rezeptur 2"="skyblue2","Rezeptur 3"="blue", "Rezeptur 4"="darkred","Rezeptur 5"="orange","Rezeptur 6"="purple","Rezeptur 7"="wheat3"))+ # Manuelle Definition der Farbe der Balken
  geom_text(aes(mapping=Modell2, x=HausKontext,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
  xlab("Kontexte")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,300,10),expand=c(0,0), limits=c(0,47))+ # Manuelle Definition der Y-Achse
  theme_classic()+ # Klassisches 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)) # Vertikale Darstellung der X-Achsenbeschriftung

# Export des Diagramms  
ggsave("Abb.6-132.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=10,width=12,unit=c("cm"),dpi=1200)

22 Abb. 6-134

# Daten einlesen
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv")

# Definieren der Darstellungsreihenfolge
data$Typ<-factor(data$Typ,levels=c("Eifoermiger Topf","Schale","Kumpfartiges Gefaess","Flasche Typ 5.2","Flasche","Schuessel","Feinkeramischer Kumpf","Grobkeramischer Kumpf","Unbestimmt"))

# Erstellen des Diagramms
ggplot(data)+ geom_bar(aes(fill=Modell2, x=Typ),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+
  scale_fill_manual(values = c("Rezeptur 1a" = "grey70", "Rezeptur 1b" = "grey51","Rezeptur 1c"="grey11","Rezeptur 2"="skyblue2","Rezeptur 3"="blue", "Rezeptur 4"="darkred","Rezeptur 5"="orange","Rezeptur 6"="purple","Rezeptur 7"="wheat3"))+ # Manuelle Definition der Farbe der Balken
  geom_text(aes(mapping=Modell2, x=Typ,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,hjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
  xlab("Gefäßtyp")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,130,10),expand=c(0,0), limits=c(0,105))+ # Manuelle Definition der Y-Achse
  theme_classic()+ # Klassisches 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.3,hjust=0.3)) # Vertikale Darstellung der X-Achsenbeschriftung

# Export des Diagramms
ggsave("Abb.6-134.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=10,width=10,unit=c("cm"),dpi=1200)

23 Abb. 6-135

# Daten einlesen und filtern
data<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage/Daten_RB_Ker_vollständigMW_chemGruppen.csv")
data<-subset(data, Kultur %in% c("La Hoguette"))

# Erstellen des Diagramms
ggplot(data)+ geom_bar(aes(fill=Modell2, x=LeFranc),position = position_dodge2(preserve = 'single',padding = 0.0),color="black")+
  scale_fill_manual(values = c("Rezeptur 1a" = "grey70", "Rezeptur 1b" = "grey51","Rezeptur 1c"="grey11","Rezeptur 2"="skyblue2","Rezeptur 3"="blue", "Rezeptur 4"="darkred","Rezeptur 5"="orange","Rezeptur 6"="purple","Rezeptur 7"="wheat3"))+ # Manuelle Definition der Farbe der Balken
  geom_text(aes(mapping=Modell2, x=LeFranc,label=..count..),stat='count',position=position_dodge(1),vjust=-0.3,size=2.75)+ # Manuelles Hinzufügen der Zahlenwerte als Text oberhalb der Balken
  xlab("Zierstil nach LeFranc")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,145,5),expand=c(0,0), limits=c(0,43))+ # Manuelle Definition der Y-Achse
  theme_classic()+ # Klassisches 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 

# Export des Diagramms
ggsave("Abb.6-135.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Rezeptur//"),plot=last_plot(),device="eps",height=6,width=4,unit=c("cm"),dpi=1200)

24 Daten zusammenstellen

# Daten einlesen und filtern
data1<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_RB_SE.csv")
data2<- read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage//Daten_RB_vollständigMW.csv")
data3<-subset(data2, Kultur %in% c("LBK","La Hoguette"))
data4<-data3[,c(1,3:23)]

# Kombinieren mehrerer Dataframes basierend auf der Probennummer
data<-merge(data1,data4, by="Probennummer", all=TRUE)

# Entfernen von ".y" aus den Spaltennamen
colnames(data) <- gsub(".y", "", colnames(data))

# Spaltennamen "Summe" durch "Normabst" ersetzen
colnames(data) <- gsub("Summe", "Normabst", colnames(data))

# Speichern als CSV
write.csv(data,"../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_SE_RB_mitMesswerten.csv",row.names=FALSE)

25 Abb. 6-136

25.1 Histogramm

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_SE_RB_mitMesswerten.csv")

# Berechnung der unteren (25%) und oberen (75%) Quartile für die Spalte "Normabst"
Normabst0 <- (data) %>%
  summarize(lower = quantile(Normabst, probs = .25),
            upper = quantile(Normabst, probs = .75))

# Diagramm erstellen 
Hist_NormSE_Keramik_LBKI<-ggplot(data,aes(x=Normabst))+
  geom_histogram(fill="lightgrey",color="black",binwidth=0.25,bins=NULL)+# Manuelle Definition der Farbe der Balken
  ylab("Häufigkeit")+# Manuelle Achsenbeschriftung
  theme_classic()+# Klassisches Design
  scale_x_continuous(breaks=seq(0,36,1))+scale_y_continuous(breaks=seq(0,150,10))+# Manuelle Definition der Achsen
  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"))+theme(axis.title.x=element_blank())+# Manuelle Formatierung von Achsen- und Legendendarstellung
  geom_vline(aes(xintercept=median(Normabst)),color="blue", linetype="dashed", linewidth=1)+# Vertikale Markierung des Medians
  geom_vline(data=Normabst0, aes(xintercept=lower), color="red", linetype="dotted", linewidth=1)+# Vertikale Markierung des 25%-Quartils
  geom_vline(data=Normabst0, aes(xintercept=upper), color="red", linetype="dotted", linewidth=1) # Vertikale Markierung des 75%-Quartils

# Berechnung der unteren (25%) und oberen (75%) Quartile für die Spalte "Normabst" nach Kultur
Normabst1 <- (data) %>%
  group_by(Kultur) %>%
  summarize(lower = quantile(Normabst, probs = .25),
            upper = quantile(Normabst, probs = .75))

# Diagramm erstellen 
Hist_NormSE_Keramik_nKultur_LBKI<-ggplot(subset(data,Kultur %in% c("La Hoguette","LBK")),aes(x=Normabst))+
  geom_histogram(fill="lightgrey", color="black",binwidth=0.25,bins=NULL)+# Manuelle Definition der Farbe der Balken
  xlab("Distanz zur lokalen bandkeramischen Gefäßeinheit von Rottenburg 'Fröbelweg'")+ylab("Häufigkeit")+# Manuelle Achsenbeschriftung
  theme_classic()+# Klassisches Design
  scale_x_continuous(breaks=seq(0,36,1))+scale_y_continuous(breaks=seq(0,150,10))+# Manuelle Formatierung von Achsen- und Legendendarstellung
  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 Definition der Achsen
  facet_grid(Kultur~.)+theme(strip.text.y = element_text(angle = 0),strip.background = element_rect(colour="white", fill="white"))+ # Facettierung nach Kategorien
  geom_vline(data=ddply(subset(data,Kultur %in% c("La Hoguette","LBK")), "Kultur", summarise, grp.median=median(Normabst)), aes(xintercept=grp.median),color="blue", linetype="dashed", linewidth=1)+ # Vertikale Markierung des Medians
  geom_vline(data=Normabst1, aes(xintercept=lower), color="red", linetype="dotted", linewidth=1)+ # Vertikale Markierung des 25%-Quartils nach Kategorien
  geom_vline(data=Normabst1, aes(xintercept=upper), color="red", linetype="dotted", linewidth=1)+ # Vertikale Markierung des 75%-Quartils nach Kategorien
  labs(subtitle=paste("Kruskal-Wallis, p=",round(({compare_means(Normabst ~ Kultur,aes(x=Normabst), data=subset(data,Kultur %in% c("La Hoguette","LBK")),method="kruskal.test")$p}),6))) # Berechnen des Kruskal-Wallis-Tests inkl. p-Wert und anzeigen als Unterüberschrift

# Kombination der Diagramme 
plot_grid(Hist_NormSE_Keramik_LBKI,Hist_NormSE_Keramik_nKultur_LBKI,ncol=1,nrow=2,align = "v",axis = "lr",rel_heights=c(1,3))

# Export des kombinierten Diagramms 
ggsave("Abb.6-136.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Herkunft//"),plot=last_plot(),device="eps",height=9,width=15.3,unit=c("cm"),dpi=1200)

25.2 Kennwerte

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_SE_RB_mitMesswerten.csv")

# Berechnen von Mittelwert und Standardabweichung für den gesamten Datensatz
data %>% dplyr::summarise(m = mean(Normabst),sd=sd(Normabst))
         m       sd
1 1.360368 0.829398
# Berechnen von Mittelwert und Standardabweichung nach Kategorien
group_by(data, Kultur) %>% dplyr::summarise(m = mean(Normabst),sd=sd(Normabst))
# A tibble: 2 × 3
  Kultur          m    sd
  <chr>       <dbl> <dbl>
1 LBK          1.08 0.798
2 La Hoguette  1.76 0.698
# Anzahl der Gesamtbeobachtungen
data %>% dplyr::summarise(count=n())
  count
1   268
# Anzahl der Beobachtungen pro Kategorie
data %>%  group_by(Kultur) %>% dplyr::summarise(count=n())
# A tibble: 2 × 2
  Kultur      count
  <chr>       <int>
1 LBK           157
2 La Hoguette   111

26 Abb. 6-137

Die Einteilung der Proben in die chemischen Herkunften erfolgte in Excel.

26.1 Histogramm

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_SE_RB_mitMesswerten_bearb.csv")

# Berechnung der unteren (25%) und oberen (75%) Quartile für die Spalte "Normabst"
Normabst0 <- (data) %>%
  summarize(lower = quantile(Normabst, probs = .25),
            upper = quantile(Normabst, probs = .75))

# Diagramm erstellen 
Hist_NormSE_Keramik_LBKI<-ggplot(data,aes(x=Normabst))+
  geom_histogram(fill="lightgrey",color="black",binwidth=0.25,bins=NULL)+# Manuelle Definition der Farbe der Balken
  ylab("Häufigkeit")+# Manuelle Achsenbeschriftung
  theme_classic()+# Klassisches Design
  scale_x_continuous(breaks=seq(0,36,1))+scale_y_continuous(breaks=seq(0,150,10))+# Manuelle Definition der Achsen
  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"))+theme(axis.title.x=element_blank())+# Manuelle Formatierung von Achsen- und Legendendarstellung
  geom_vline(aes(xintercept=median(Normabst)),color="blue", linetype="dashed", linewidth=1)+# Vertikale Markierung des Medians
  geom_vline(data=Normabst0, aes(xintercept=lower), color="red", linetype="dotted", linewidth=1)+# Vertikale Markierung des 25%-Quartils
  geom_vline(data=Normabst0, aes(xintercept=upper), color="red", linetype="dotted", linewidth=1) # Vertikale Markierung des 75%-Quartils

# Berechnung der unteren (25%) und oberen (75%) Quartile für die Spalte "Normabst" nach Modell2
Normabst10 <- (data) %>%
  group_by(Modell1) %>%
  dplyr::summarise(lower = quantile(Normabst, probs = .25),
            upper = quantile(Normabst, probs = .75))
 
# Diagramm erstellen 
Hist_Modell1<-ggplot(data,aes(x=Normabst))+
  geom_histogram(fill="lightgrey", color="black",binwidth=0.25,bins=NULL)+ # Manuelle Definition der Farbe der Balken
  xlab("Distanz zur typisch bandkeramischen Rezeptur von Rottenburg 'Fröbelweg'")+ylab("Häufigkeit")+ # Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches Design
  scale_x_continuous(breaks=seq(0,36,1))+ # Manuelle Definition der Achsen
  scale_y_continuous(breaks=seq(0,150,10))+
  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
  facet_grid(Modell1~.)+theme(strip.text.y = element_text(angle = 0),strip.background = element_rect(colour="white", fill="white"))+ # Facettierung nach Kategorien
  geom_vline(data=ddply(data,"Modell1", dplyr::summarise, grp.median=median(Normabst)), aes(xintercept=grp.median),color="blue", linetype="dashed", linewidth=1)+ # Vertikale Markierung des Medians nach Kategorien
  geom_vline(data=Normabst10, aes(xintercept=lower), color="red", linetype="dotted", linewidth=1)+ # Vertikale Markierung des 25%-Quartils nach Kategorien
  geom_vline(data=Normabst10, aes(xintercept=upper), color="red", linetype="dotted", linewidth=1) # Vertikale Markierung des 75%-Quartils nach Kategorien

# Kombination der Diagramme 
plot_grid(Hist_NormSE_Keramik_LBKI,Hist_Modell1,ncol=1,nrow=2,align = "v",axis = "lr",rel_heights=c(1,4))

# Export des kombinierten Diagramms 
ggsave("Abb.6-137.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Herkunft//"),plot=last_plot(),device="eps",height=15,width=15.3,unit=c("cm"),dpi=1200)

26.2 Kennwerte Modell 1

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_SE_RB_mitMesswerten_bearb.csv")

# Berechnen von Mittelwert und Standardabweichung für den gesamten Datensatz
data %>% dplyr::summarise(m = mean(Normabst),sd=sd(Normabst))
         m       sd
1 1.360368 0.829398
# Berechnen von Mittelwert und Standardabweichung nach Kategorien
group_by(data, Modell1) %>% dplyr::summarise(m = mean(Normabst),sd=sd(Normabst))
# A tibble: 5 × 3
  Modell1        m      sd
  <chr>      <dbl>   <dbl>
1 Herkunft 1  1.17  0.545 
2 Herkunft 2  2.69  0.183 
3 Herkunft 3  3.56  0.212 
4 Herkunft 4  4.20  0.0191
5 Herkunft 5  5.60 NA     
# Anzahl der Gesamtbeobachtungen
data %>% dplyr::summarise(count=n())
  count
1   268
# Anzahl der Beobachtungen pro Kategorie
data %>%  group_by(Modell1) %>% dplyr::summarise(count=n())
# A tibble: 5 × 2
  Modell1    count
  <chr>      <int>
1 Herkunft 1   244
2 Herkunft 2    11
3 Herkunft 3    10
4 Herkunft 4     2
5 Herkunft 5     1

27 Abb. 6-138

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_SE_RB_mitMesswerten_bearb.csv")

# Daten nach ausgewählter Spalte sortieren
data<-data[order(data$Modell1),]

# Diagramme erstellen
Modell1_SE_Rb_Sr<-ggplot(data, aes(x=Rb,y=Sr, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+ # Manuelle Definition von Größe und Form der Symbole
  scale_color_manual(name="Modell1",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+ # Manuelle Definition der Farbe der Symbole
  xlab("Rb in ppm")+ylab("Sr in ppm")+ # Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches 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

Modell1_SE_Zn_Sr<-ggplot(data, aes(x=Zn,y=Sr, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell1",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  
  xlab("Zn in ppm")+ylab("Sr in ppm")+
  theme_classic()+
  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"))

Modell1_SE_Y_V<-ggplot(data, aes(x=Y,y=V, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell1",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+
  xlab("Y in ppm")+ylab("V in ppm")+
  theme_classic()+
  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"))
  
Modell1_SE_Zn_V<-ggplot(data, aes(x=Zn,y=V, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell1",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  
  xlab("Zn in ppm")+ylab("V in ppm")+
  theme_classic()+
  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"))

Modell1_SE_Zn_Zr<-ggplot(data, aes(x=Zn,y=Zr, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell1",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  
  xlab("Zn in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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"))

Modell1_SE_Cr_Zr<-ggplot(data, aes(x=Cr,y=Zr, color=Modell1, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell1",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  
  xlab("Cr in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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"))

# Kombination der Diagramme  
ggarrange(Modell1_SE_Rb_Sr,Modell1_SE_Zn_Sr,Modell1_SE_Zn_V,Modell1_SE_Zn_Zr,Modell1_SE_Cr_Zr,Modell1_SE_Y_V,ncol=2,nrow=3,align="hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms 
ggsave("Abb.6-138.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Herkunft//"),plot=last_plot(),device="eps",height=14,width=15.3,unit=c("cm"),dpi=1200)

28 Erstellen von Modell 2

28.1 Modell 2a

Die Datei Normabstand_SE_BB_mitMesswerten_bearb wurde in Excel um die beschriebenen Veränderungen für Modell 2 erweitert:

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_SE_RB_mitMesswerten_bearb.csv")

# Daten nach ausgewählter Spalte sortieren
data<-data[order(data$Modell2a),]

Modell2a_SE_Rb_Sr<-ggplot(data, aes(x=Rb,y=Sr, color=Modell2a, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+ # Manuelle Definition von Größe und Form der Symbole
  scale_color_manual(name="Modell2a",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  # Manuelle Definition der Farbe der Symbole
  xlab("Rb in ppm")+ylab("Sr in ppm")+ # Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches 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

Modell2a_SE_Zn_Sr<-ggplot(data, aes(x=Zn,y=Sr, color=Modell2a, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2a",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  
  xlab("Zn in ppm")+ylab("Sr in ppm")+
  theme_classic()+
  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"))

Modell2a_SE_Y_V<-ggplot(data, aes(x=Y,y=V, color=Modell2a, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2a",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+
  xlab("Y in ppm")+ylab("V in ppm")+
  theme_classic()+
  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"))

Modell2a_SE_Zn_V<-ggplot(data, aes(x=Zn,y=V, color=Modell2a, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2a",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  
  xlab("Zn in ppm")+ylab("V in ppm")+
  theme_classic()+
  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"))

Modell2a_SE_Zn_Zr<-ggplot(data, aes(x=Zn,y=Zr, color=Modell2a, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2a",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  
  xlab("Zn in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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"))

Modell2a_SE_Cr_Zr<-ggplot(data, aes(x=Cr,y=Zr, color=Modell2a, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2a",values=c("palegreen4","violetred","royalblue","tomato2","grey55","orange"))+  
  xlab("Cr in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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"))

# Kombination der Diagramme
ggarrange(Modell2a_SE_Rb_Sr,Modell2a_SE_Zn_Sr,Modell2a_SE_Zn_V,Modell2a_SE_Zn_Zr,Modell2a_SE_Cr_Zr,Modell2a_SE_Y_V,ncol=2,nrow=3,align="hv",common.legend=TRUE)+theme(legend.position="bottom")

29 Abb. 6-139

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Herkunft//Normabstand_SE_RB_mitMesswerten_bearb.csv")

# Daten nach ausgewählter Spalte sortieren
data<-data[order(data$Modell2),]

# Diagramme erstellen
Modell2_SE_Rb_Sr<-ggplot(data, aes(x=Rb,y=Sr, color=Modell2, shape=Kultur))+ 
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+ # Manuelle Definition von Größe und Form der Symbole
  scale_color_manual(name="Modell2",values=c("palegreen4","violetred","grey55"))+  # Manuelle Definition der Farbe der Symbole
  xlab("Rb in ppm")+ylab("Sr in ppm")+# Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches 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

Modell2_SE_Zn_Sr<-ggplot(data, aes(x=Zn,y=Sr, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2",values=c("palegreen4","violetred","grey55"))+  
  xlab("Zn in ppm")+ylab("Sr in ppm")+
  theme_classic()+
  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"))

Modell2_SE_Y_V<-ggplot(data, aes(x=Y,y=V, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2",values=c("palegreen4","violetred","grey55"))+
  xlab("Y in ppm")+ylab("V in ppm")+
  theme_classic()+
  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"))

Modell2_SE_Zn_V<-ggplot(data, aes(x=Zn,y=V, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2",values=c("palegreen4","violetred","grey55"))+  
  xlab("Zn in ppm")+ylab("V in ppm")+
  theme_classic()+
  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"))

Modell2_SE_Zn_Zr<-ggplot(data, aes(x=Zn,y=Zr, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2",values=c("palegreen4","violetred","grey55"))+  
  xlab("Zn in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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"))

Modell2_SE_Cr_Zr<-ggplot(data, aes(x=Cr,y=Zr, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(17,19))+
  scale_color_manual(name="Modell2",values=c("palegreen4","violetred","grey55"))+  
  xlab("Cr in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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"))

# Kombination der Diagramme
ggarrange(Modell2_SE_Rb_Sr,Modell2_SE_Zn_Sr,Modell2_SE_Zn_V,Modell2_SE_Zn_Zr,Modell2_SE_Cr_Zr,Modell2_SE_Y_V,ncol=2,nrow=3,align="hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms 
ggsave("Abb.6-139.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Herkunft//"),plot=last_plot(),device="eps",height=14,width=15.3,unit=c("cm"),dpi=1200)

30 Abb. 6-140

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage//Daten_RB_Ker_vollständigMW_chemGruppen_bearb.csv")

# Definieren der Darstellungsreihenfolge
data$ZierDetail<-factor(data$ZierDetail,levels=c("21.1/58.2","21.5/58.2/Leiste","58.1","58.2","58.3","58.4","58.5","58.6","58.1/2","58.1/3","58.1/4","58.1/Leiste","58.2/Leiste","58.2/Winkelband","58.2/3","58.2/3/Leiste","58.2/3/Wellenband","58.2/4","58.2/5","58.3/Leiste","58.4/5","58.5/Leiste","20.2","21.1","21.2","21.5","21.7","22.2","29.2","29.6","29.7","29.22","29.23","21.1/29.28","21.2/29.20","21.8/22.2","21.8/Fingerkniffe","21.9/29.23.1","29.2/6","29.6/7","29.23.1","29.23.2","Unverziert"))
data<-filter(data, ZierDetail != "Unverziert")

# Erstellen des Diagramms
ggplot(data)+ geom_bar(aes(fill=Kultur, x=ZierDetail),position = position_dodge2(preserve = 'single',padding =0.0),color="black")+
  scale_fill_manual(values = c("La Hoguette" = "grey20", "LBK" = "lightgrey"))+ # Manuelle Definition der Farbe der Balken
  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
  xlab("Zier")+ylab("Probenanzahl")+ # Manuelle Achsenbeschriftung
  scale_y_continuous(breaks=seq(0,300,2),expand=c(0,0),limits=c(0,30))+# Manuelle Definition der Y-Achse
  scale_x_discrete(limits=rev)+ # Inverse Darstellung der Y-Achse
  coord_flip()+ # Invertieren der Achsen
  theme_classic()+ # Klassisches 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 

# Export des Diagramms 
ggsave("Abb.6-140.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Herkunft//"),plot=last_plot(),device="eps",height=23,width=12,unit=c("cm"),dpi=1200)

31 Daten zusammenstellen

31.1 Frieberg-Bruchenbrücken

# Daten einlesen und filtern
data1<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_vollständigMW_bearb.csv")
data2<-filter(data1, Messstelle== "frischer Bruch")
data3<-filter(data2, Kultur== "Huettenlehm")
data4<-data3[,c(1,3:23,27),]

# Spaltenweise Kombination von Dataframes und einfügen von Huettenlehm in Spalte Modell2 und 4 in alle 45 Zeilen
data5 <- cbind(data4, Modell4 = rep('Huettenlehm', 45), Modell2 = rep('Huettenlehm', 45))

# Daten einlesen und filtern
data6<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_Ton_Messwerte_chemGruppen_SE_bearb.csv")

data7<-rbind(data6,data5)

# Speichern als CSV
write.csv(data7,"../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_Ton_HL_Messwerte_chemGruppen.csv",row.names=FALSE)

31.2 Rottenburg ‘Fröbelweg’

# Daten einlesen und filtern
data1<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen/Datengrundlage//Daten_RB_vollständigMW.csv")
data2<-filter(data1, Kultur== "Huettenlehm")
data3<-data2[,c(1,3:23,27),]

# Spaltenweise Kombination von Dataframes und einfügen von Huettenlehm in Spalte Modell2 in alle 30 Zeilen
data4 <- cbind(data3, Modell2 = rep('Huettenlehm', 30))

# Daten einlesen und filtern
data5<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen/Datengrundlage//Daten_RB_Ker_vollständigMW_chemGruppen_bearb.csv")
data6<-data5[,c(1:22,26,85),]

# Zeilenweise Kombination mehrerer Dataframes
data7<-rbind(data6,data4)

# Speichern als CSV
write.csv(data7,"../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage//Daten_RB_Ker_HL_Messwerte_chemGruppen.csv",row.names=FALSE)

32 Abb.6-141

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Datengrundlage//Daten_BB_Ker_Ton_HL_Messwerte_chemGruppen.csv")
data2<-read.csv("../Daten//Kap_6//Kap_6.2//Grundlagen//Bodenproben//MinMaxMeanBP.csv")

# Definieren der Darstellungsreihenfolge
data$Modell4<-factor(data$Modell4,levels=c("Rezeptur 1","Rezeptur 2a","Rezeptur 2b","Rezeptur 3a","Rezeptur 3b","Rezeptur 4","Huettenlehm","BP 08","BP 09","BP 10"))

# Diagramm erstellen
Scatter_Rezeptur_Ton_Rb_Sr<-ggplot(data, aes(x=Rb,y=Sr, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(5, 15, 6,0,17,19))+ # Manuelle Definition der Form der Symbole
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black","black"))+  # Manuelle Definition der Farbe der Symbole
  xlab("Rb in ppm")+ylab("Sr in ppm")+ # Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches 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
  geom_errorbar(data = data2,mapping = aes(x=Rb_Mittelwert,y=Sr_Mittelwert, shape=NULL,color=NULL,xmin = Rb_Min, xmax = Rb_Max,ymin=Sr_Min, ymax=Sr_Max),width =2,position = position_dodge(0.05))+ # Hinzufügen von vertikalen Fehlerbalken für die Mittelwerte der Tone
  geom_errorbarh(data = data2, mapping = aes(x=Rb_Mittelwert,y=Sr_Mittelwert, shape=NULL,color=NULL,xmin = Rb_Min, xmax = Rb_Max,ymin=Sr_Min, ymax=Sr_Max),position = position_dodge(0.05),height=12) # Hinzufügen von horizontalen Fehlerbalken für die Mittelwerte der Tone

Scatter_Rezeptur_Ton_Y_Zr<-ggplot(data, aes(x=Y,y=Zr, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("Y in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=Y_Mittelwert,y=Zr_Mittelwert, shape=NULL,color=NULL,xmin = Y_Min, xmax = Y_Max,ymin=Zr_Min, ymax=Zr_Max),width =0.3,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=Y_Mittelwert,y=Zr_Mittelwert, shape=NULL,color=NULL,xmin = Y_Min, xmax = Y_Max,ymin=Zr_Min, ymax=Zr_Max),position = position_dodge(0.05),height=10)

Scatter_Rezeptur_Ton_Zn_Zr<-ggplot(data, aes(x=Zn,y=Zr, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+
  scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("Zn in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=Zn_Mittelwert,y=Zr_Mittelwert, shape=NULL,color=NULL,xmin = Zn_Min, xmax = Zn_Max,ymin=Zr_Min, ymax=Zr_Max),width =0.5,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=Zn_Mittelwert,y=Zr_Mittelwert, shape=NULL,color=NULL,xmin = Zn_Min, xmax = Zn_Max,ymin=Zr_Min, ymax=Zr_Max),position = position_dodge(0.05),height=1)
  
Scatter_Rezeptur_Ton_CaO_Sr<-ggplot(data, aes(x=CaO,y=Sr, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+
  scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("CaO in %")+ylab("Sr in ppm")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=CaO_Mittelwert,y=Sr_Mittelwert, shape=NULL,color=NULL,xmin = CaO_Min, xmax = CaO_Max,ymin=Sr_Min, ymax=Sr_Max),width =0.1,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=CaO_Mittelwert,y=Sr_Mittelwert, shape=NULL,color=NULL,xmin = CaO_Min, xmax = CaO_Max,ymin=Sr_Min, ymax=Sr_Max),position = position_dodge(0.05),height=10)
  
Scatter_Rezeptur_Ton_Rb_K2O<-ggplot(data, aes(x=Rb,y=K2O, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("Rb in ppm")+ylab("K2O in %")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=Rb_Mittelwert,y=K2O_Mittelwert, shape=NULL,color=NULL,xmin = Rb_Min, xmax = Rb_Max,ymin=K2O_Min, ymax=K2O_Max),width =2,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=Rb_Mittelwert,y=K2O_Mittelwert, shape=NULL,color=NULL,xmin = Rb_Min, xmax = Rb_Max,ymin=K2O_Min, ymax=K2O_Max),position = position_dodge(0.05),height=0.04)

Scatter_Rezeptur_Ton_Al2O3_SiO2<-ggplot(data, aes(x=Al2O3,y=SiO2, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("Al2O3 in %")+ylab("SiO2 in %")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=Al2O3_Mittelwert,y=SiO2_Mittelwert, shape=NULL,color=NULL,xmin = Al2O3_Min, xmax = Al2O3_Max,ymin=SiO2_Min, ymax=SiO2_Max),width =0.2,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=Al2O3_Mittelwert,y=SiO2_Mittelwert, shape=NULL,color=NULL,xmin = Al2O3_Min, xmax = Al2O3_Max,ymin=SiO2_Min, ymax=SiO2_Max),position = position_dodge(0.05),height=0.5)
  
Scatter_Rezeptur_Ton_CaO_P2O5<-ggplot(data, aes(x=CaO,y=P2O5, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+
  scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("CaO in %")+ylab("P2O5 in %")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=CaO_Mittelwert,y=P2O5_Mittelwert, shape=NULL,color=NULL,xmin = CaO_Min, xmax = CaO_Max,ymin=P2O5_Min, ymax=P2O5_Max),width =0.2,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=CaO_Mittelwert,y=P2O5_Mittelwert, shape=NULL,color=NULL,xmin = CaO_Min, xmax = CaO_Max,ymin=P2O5_Min, ymax=P2O5_Max),position = position_dodge(0.05),height=0.1)
 
Scatter_Rezeptur_Ton_CaO_Fe2O3<-ggplot(data, aes(x=CaO,y=Fe2O3, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("CaO in %")+ylab("Fe2O3 in %")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=CaO_Mittelwert,y=Fe2O3_Mittelwert, shape=NULL,color=NULL,xmin = CaO_Min, xmax = CaO_Max,ymin=Fe2O3_Min, ymax=Fe2O3_Max),width =0.2,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=CaO_Mittelwert,y=Fe2O3_Mittelwert, shape=NULL,color=NULL,xmin = CaO_Min, xmax = CaO_Max,ymin=Fe2O3_Min, ymax=Fe2O3_Max),position = position_dodge(0.05),height=0.2)

Scatter_Rezeptur_Ton_MnO_Fe2O3<-ggplot(data, aes(x=MnO,y=Fe2O3, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+
  scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("MnO in %")+ylab("Fe2O3 in %")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=MnO_Mittelwert,y=Fe2O3_Mittelwert, shape=NULL,color=NULL,xmin = MnO_Min, xmax = MnO_Max,ymin=Fe2O3_Min, ymax=Fe2O3_Max),width =0.01,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=MnO_Mittelwert,y=Fe2O3_Mittelwert, shape=NULL,color=NULL,xmin = MnO_Min, xmax = MnO_Max,ymin=Fe2O3_Min, ymax=Fe2O3_Max),position = position_dodge(0.05),height=0.2)
  
Scatter_Rezeptur_Ton_TiO2_K2O<-ggplot(data, aes(x=TiO2,y=K2O, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("TiO2 in %")+ylab("K2O in %")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=TiO2_Mittelwert,y=K2O_Mittelwert, shape=NULL,color=NULL,xmin = TiO2_Min, xmax = TiO2_Max,ymin=K2O_Min, ymax=K2O_Max),width =0.04,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=TiO2_Mittelwert,y=K2O_Mittelwert, shape=NULL,color=NULL,xmin = TiO2_Min, xmax = TiO2_Max,ymin=K2O_Min, ymax=K2O_Max),position = position_dodge(0.05),height=0.05)

Scatter_Rezeptur_Ton_TiO2_Zr<-ggplot(data, aes(x=TiO2,y=Zr, color=Modell4, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(5, 15, 6,0,17,19))+
  scale_color_manual(name="Modell4",values=c("cyan4","grey","burlywood","brown","red","black","black","black","black", "black"))+  
  xlab("TiO2 in %")+ylab("Zr in ppm")+
  theme_classic()+
  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_errorbar(data = data2,mapping = aes(x=TiO2_Mittelwert,y=Zr_Mittelwert, shape=NULL,color=NULL,xmin = TiO2_Min, xmax = TiO2_Max,ymin=Zr_Min, ymax=Zr_Max),width =0.04,position = position_dodge(0.05))+
  geom_errorbarh(data = data2, mapping = aes(x=TiO2_Mittelwert,y=Zr_Mittelwert, shape=NULL,color=NULL,xmin = TiO2_Min, xmax = TiO2_Max,ymin=Zr_Min, ymax=Zr_Max),position = position_dodge(0.05),height=10)

# Kombination der Diagramme   
ggarrange(Scatter_Rezeptur_Ton_Al2O3_SiO2,Scatter_Rezeptur_Ton_CaO_P2O5,Scatter_Rezeptur_Ton_CaO_Fe2O3,Scatter_Rezeptur_Ton_MnO_Fe2O3,Scatter_Rezeptur_Ton_TiO2_K2O,Scatter_Rezeptur_Ton_CaO_Sr,Scatter_Rezeptur_Ton_Rb_K2O,Scatter_Rezeptur_Ton_TiO2_Zr,Scatter_Rezeptur_Ton_Rb_Sr,Scatter_Rezeptur_Ton_Y_Zr,Scatter_Rezeptur_Ton_Zn_Zr,ncol=3,nrow=4,align = "hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms
ggsave("Abb.6-141.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Herkunft//"),plot=last_plot(),device="eps",height=18,width=15.3,unit=c("cm"),dpi=1200)

33 Abb.6-142

# Daten einlesen
data<-read.csv("../Daten//Kap_6//Kap_6.3//Grundlagen//Datengrundlage//Daten_RB_Ker_HL_Messwerte_chemGruppen_bearb.csv")

# Daten nach ausgewählter Spalte sortieren
data$Modell2<-factor(data$Modell2,levels=c("Rezeptur 1a","Rezeptur 1b","Rezeptur 1c","Rezeptur 2","Rezeptur 3","Rezeptur 4","Rezeptur 5","Rezeptur 6","Rezeptur 7","Huettenlehm"))

# Diagramme erstellen
Scatter_Rezeptur_Ton_Rb_Sr<-ggplot(data, aes(x=Rb,y=Sr, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+ # Manuelle Definition der Form der Symbole
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ # Manuelle Definition der Farbe der Symbole 
  xlab("Rb in ppm")+ylab("Sr in ppm")+# Manuelle Achsenbeschriftung
  theme_classic()+ # Klassisches 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

Scatter_Rezeptur_Ton_Y_Zr<-ggplot(data, aes(x=Y,y=Zr, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+
  xlab("Y in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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"))

Scatter_Rezeptur_Ton_Zn_Zr<-ggplot(data, aes(x=Zn,y=Zr, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ 
  xlab("Zn in ppm")+ylab("Zr in ppm")+
  theme_classic()+
  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"))
 
Scatter_Rezeptur_Ton_CaO_Sr<-ggplot(data, aes(x=CaO,y=Sr, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ 
  xlab("CaO in %")+ylab("Sr in ppm")+
  theme_classic()+
  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"))
  
Scatter_Rezeptur_Ton_Rb_K2O<-ggplot(data, aes(x=Rb,y=K2O, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ 
  xlab("Rb in ppm")+ylab("K2O in %")+
  theme_classic()+
  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"))
  
Scatter_Rezeptur_Ton_Al2O3_SiO2<-ggplot(data, aes(x=Al2O3,y=SiO2, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ 
  xlab("Al2O3 in %")+ylab("SiO2 in %")+
  theme_classic()+
  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"))
  
Scatter_Rezeptur_Ton_CaO_P2O5<-ggplot(data, aes(x=CaO,y=P2O5, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ 
  xlab("CaO in %")+ylab("P2O5 in %")+
  theme_classic()+
  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"))
  
Scatter_Rezeptur_Ton_CaO_Fe2O3<-ggplot(data, aes(x=CaO,y=Fe2O3, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+
  xlab("CaO in %")+ylab("Fe2O3 in %")+
  theme_classic()+
  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"))

Scatter_Rezeptur_Ton_MnO_Fe2O3<-ggplot(data, aes(x=MnO,y=Fe2O3, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ 
  xlab("MnO in %")+ ylab("Fe2O3 in %")+
  theme_classic()+
  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"))
  
Scatter_Rezeptur_Ton_TiO2_K2O<-ggplot(data, aes(x=TiO2,y=K2O, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ 
  xlab("TiO2 in %")+  ylab("K2O in %")+
  theme_classic()+
  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"))

Scatter_Rezeptur_Ton_TiO2_Zr<-ggplot(data, aes(x=TiO2,y=Zr, color=Modell2, shape=Kultur))+
  geom_point(aes(shape=Kultur),size=2)+scale_shape_manual(values=c(0,17,19))+
  scale_color_manual(name="Modell2",values=c("grey70","grey51","grey11","skyblue2","blue","darkred","orange","purple","wheat3","black"))+ 
  xlab("TiO2 in %")+ylab("Zr in ppm")+
  theme_classic()+
  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"))

# Kombination der Diagramme   
ggarrange(Scatter_Rezeptur_Ton_Al2O3_SiO2,Scatter_Rezeptur_Ton_CaO_P2O5,Scatter_Rezeptur_Ton_CaO_Fe2O3,Scatter_Rezeptur_Ton_MnO_Fe2O3,Scatter_Rezeptur_Ton_TiO2_K2O,Scatter_Rezeptur_Ton_CaO_Sr,Scatter_Rezeptur_Ton_Rb_K2O,Scatter_Rezeptur_Ton_TiO2_Zr,Scatter_Rezeptur_Ton_Rb_Sr,Scatter_Rezeptur_Ton_Y_Zr,Scatter_Rezeptur_Ton_Zn_Zr,ncol=3,nrow=4,align = "hv",common.legend=TRUE)+theme(legend.position="bottom")

# Export des kombinierten Diagramms
ggsave("Abb.6-142.eps",path=("../Daten//Kap_6//Kap_6.3//Abbildungen//Grundlagen//"),plot=last_plot(),device="eps",height=18,width=15.3,unit=c("cm"),dpi=1200)

34 Literatur

Allaire u. a. 2024: J. J. Allaire/C. Teague/C. Scheidegger/Y. Xie/C. Dervieux, Quarto v.1.5.55. https://quarto.org.
Barrett u. a. 2024: T. Barrett/M. Dowle/A. Srinivasan/J. Gorecki/M. Chirico/T. Hocking, data.table: Extension of ‘data.frame‘: R package version 1.15.4. https://cran.r-project.org/package=data.table.
Camargo 2024: A. Camargo, PCAtest: Statistical significance of PCA: R package version 0.0.1. https://github.com/arleyc/pcatest.
Field, A. u. a. 2013: A. Field/J. Miles/Z. Field, Discovering Statistics using R (Los Angeles 2013).
Kassambara 2023a: A. Kassambara, ggpubr: ’ggplot2’ Based Publication Ready Plots: R package version 0.6.0. https://cran.r-project.org/package=ggpubr.
Kassambara 2023b: A. Kassambara, rstatix: Pipe-Friendly Framework for Basic Statistical Tests: R package version 0.7.2. https://cran.r-project.org/package=rstatix.
Komsta/Novomestky 2022: L. Komsta/F. Novomestky, moments: Moments, Cumulants, Skewness, Kurtosis and Related Tests: R package version 0.14.1. https://cran.r-project.org/package=moments.
R Core Team 2024: R Core Team, R v.4.4.1: A Language and Environment for Statistical Computing: Race for Your Life. https://www.r-project.org/.
RStudio Team 2024: RStudio Team, RStudio v. 2024.04.2: Integrated Development Environment for R. https://www.rstudio.com/.
Schauberger/Walker 2024: P. Schauberger/A. Walker, openxlsx: Read, Write and Edit xlsx Files: R package version 4.2.6.1. https://cran.r-project.org/package=openxlsx.
Schauer 2025: M. Schauer, La Hoguette – Kultur, Phänomen, Subkultur? Archäologische Studien und portable, energiedispersive Röntgenfluoreszenzanalysen (p-ED-RFA) an Keramik zu einer altbekannten Frage 183. Philippika 183 (Wiesbaden 2025).
Siegmund 2020: F. Siegmund, Statistik in der Archäologie: eine anwendungsorientierte Einführung auf Basis freier Software (Norderstedt 2020). https://frank-siegmund.de/images/opendata/2020-archaeostatistik/siegmund_2020_daten.zip.
Siegmund 2023: F. Siegmund, Einführung Quarto. https://www.frank-siegmund.de/images/opendata/einfuehrungquarto.zip.
Wickham 2011: H. Wickham, The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40/1, 2011, 1–29. https://www.jstatsoft.org/v40/i01/.
Wickham 2016: H. Wickham, ggplot2: Elegant graphics for data analysis. Use R! 2(Cham 2016). https://ebookcentral.proquest.com/lib/kxp/detail.action?docid=4546676.
Wickham 2023: H. Wickham, stringr: Simple, Consistent Wrappers for Common String Operations: R package version 1.5.1. https://cran.r-project.org/package=stringr.
Yuan Tang/Wenxuan 2016: M. H. Yuan Tang/L. Wenxuan, ggfortify: Unified Interface to Visualize Statistical Result of Popular R Packages. The R Journal, 8/2, 2016, 478–489. https://cran.r-project.org/package=ggfortify.

Wiederverwendung