Seite 1 von 1

2 Boxplots in 1 Grafik

Verfasst: Do Mär 11, 2021 5:00 pm
von sonsch
Hallo!
Ich würde gerne 2 meiner Boxplots in einer Graphik darstellen. Bin über den Befehl "par()" gestoßen, hat aber leider nicht funktioniert. Kann mir da jemand weiterhelfen? :oops:

Meine Boxplots sehen so aus:

Code: Alles auswählen

# 1. Boxplot
ggplot(h2o2_fusarien, aes(x = Einwirkzeit, y = Reduktion.log, fill=Belastung) )%>%
  +geom_boxplot()%>%
  +stat_boxplot(geom = "errorbar")%>%
  +theme(axis.title.y = element_text(angle=0,margin=margin(t=0,r=0,b=0,l=10)))%>%
  +geom_hline(yintercept = 4, color = "red", lwd = 0.5)%>%
  +ggtitle("H2O2 3% Fusarien")

#2. Boxplot
ggplot(h2o2_aspergillen, aes(x = Einwirkzeit, y = Reduktion.log, fill=Belastung) )%>%
  +geom_boxplot()%>%
  +stat_boxplot(geom = "errorbar")%>%
  +theme(axis.title.y = element_text(angle=0,margin=margin(t=0,r=0,b=0,l=10)))%>%
  +geom_hline(yintercept = 4, color = "red", lwd = 0.5)%>%
  +ggtitle("H2O2 3% Aspergillen")
Ich habe mich dann ein bisschen mit dem Befehl "par()" gespielt, aber es hat leider nichts geklappt. Unter anderem habe ich den Befehl einfach darübergeschrieben (?) :

Code: Alles auswählen

par(mfrow=c(2,1))
ggplot(h2o2_fusarien, aes(x = Einwirkzeit, y = Reduktion.log, fill=Belastung) )%>%
  +geom_boxplot()%>%
  +stat_boxplot(geom = "errorbar")%>%
  +theme(axis.title.y = element_text(angle=0,margin=margin(t=0,r=0,b=0,l=10)))%>%
  +geom_hline(yintercept = 4, color = "red", lwd = 0.5)%>%
  +ggtitle("H2O2 3% Fusarien")
ggplot(h2o2_aspergillen, aes(x = Einwirkzeit, y = Reduktion.log, fill=Belastung) )%>%
  +geom_boxplot()%>%
  +stat_boxplot(geom = "errorbar")%>%
  +theme(axis.title.y = element_text(angle=0,margin=margin(t=0,r=0,b=0,l=10)))%>%
  +geom_hline(yintercept = 4, color = "red", lwd = 0.5)%>%
  +ggtitle("H2O2 3% Aspergillen")

Re: 2 Boxplots in 1 Grafik

Verfasst: Do Mär 11, 2021 5:43 pm
von student
Ich habe hier mal etwas zum Histogramm gemacht, allerdings unter Verzicht von ggplot(). Vielleicht hilft es trotzdem weiter...

Re: 2 Boxplots in 1 Grafik

Verfasst: Do Mär 11, 2021 6:58 pm
von sonsch
Vielen Dank für die Antwort und den Link zum Video!

Mit "boxplot()" funktioniert es, mit meinen "ggplot()"-Varianten hab ichs leider noch nicht hinbekommen.

Also so klappts mal:

Code: Alles auswählen

par(mfrow=c(1,2))
boxplot(h2o2_fusarien$Reduktion.log~h2o2_fusarien$Einwirkzeit)
boxplot(h2o2_aspergillen$Reduktion.log~h2o2_aspergillen$Einwirkzeit)
par(mfrow=c(1,1))
LG

Re: 2 Boxplots in 1 Grafik

Verfasst: Do Mär 11, 2021 8:14 pm
von bigben
par und ggplot gehören zwei verschiedenen Welten an. Das wird nix. Such mal nach ggarange() im Paket ggpubr.
LG, Bernhard

Re: 2 Boxplots in 1 Grafik

Verfasst: Fr Mär 12, 2021 1:05 pm
von sonsch
Aaah! Super danke! Hat mir sehr geholfen! :D

LG

Re: 2 Boxplots in 1 Grafik

Verfasst: Fr Mär 12, 2021 3:01 pm
von bigben
So, jetzt sitze ich an einem richtigen Computer mit einem richtigen Keyboard. Es gibt in R verschiedene Grafiksysteme, die Du gedanklich komplett voneinander trennen musst. Die zwei mit Abstand häufigsten sind base und ggplot. Ersteres wird mit R gemeinsam installiert und umfasst Befehle wie plot, boxplot, hist, par, dev etc. Letzteres muss man sich zu seinem R zusätzlich installieren. Es umfasst Kommandos wie ggplot, geom_point, geom_histogram und ggsave. Das ist wie Lego und Playmobil -- mit beiden lässt sich schön spielen, aber die Männchen von dem einen wollen einfach nicht in die Autos von dem anderen passen.
Anstelle von ggarrange aus ggpubr hätte ich Dir auch plot_grid aus dem Paket cowplot empfehlen können. Schau Dir am besten cowplot und ggpubr an, wenn Du mit ggplot2 arbeiten möchtest.

LG,
Bernhard

Re: 2 Boxplots in 1 Grafik

Verfasst: Fr Mär 12, 2021 5:45 pm
von sonsch
Okay verstehe! Danke für die anschauliche Erklärung! :D

Werde mir beide Pakete anschauen! ;)

LG