Seite 1 von 1

Boxplot, einzelne Datenpunkte

Verfasst: Mo Aug 17, 2020 6:23 pm
von Charlotte1234
Ich möchte gerne, dass in meinem Dotplot auch die einzelnen Datenpunkten angezeigt werden (siehe Bild) ich habe es nun bereits mit mehreren unterschiedlichen Befehlen versucht (methode= "jitter" ; geom_dotplot(binaxis='y', stackdir='center', dotsize=0.5; geom_jitter(); etc. ) , aber nichts funktioniert :/
Entweder passiert gar nichts oder NULL wird angezeigt.

Meine bisherigen Befehle sind:


boxplot(Unmatched$`274 nm (HQ)`~Unmatched$replicate,
xlab="Treatment Unmatched",ylab="Absorabnce",
ylim = c(0, 0.25),
col=c('turquoise3','firebrick1','yellow'),
main="Quinone Quantification, Treatment Unmatched, 274 nm",
par(bg = "white"))

Über Hilfe würde ich mich sehr freuen, da ich ein blutiger Anfänger mit R bin :)

Re: Boxplot, einzelne Datenpunkte

Verfasst: Mo Aug 17, 2020 6:32 pm
von EDi
So hier?

Code: Alles auswählen

library(ggplot2)
library(hrbrthemes)
ggplot(mtcars, aes(x = as.factor(cyl), y = mpg, fill =  as.factor(cyl))) +
  geom_boxplot() +
  geom_point(position = position_jitter()) +
  theme_ipsum() +
  labs(title = "A boxplot with jitter", x = NULL)
Musst du halt an deine Daten anpassen...

Re: Boxplot, einzelne Datenpunkte

Verfasst: Mo Aug 17, 2020 6:57 pm
von bigben
EDis Lösung zielt auf ein komplett anderes Grafiksystem ab als das, das Du bisher verwendest. In Deinem gibt es die Funktion points() um einem bestehenden Plot Punkte hinzu zu fügen. Bin gerade am Handy ohne R, aber such mal nach points in R.

LG, Bernhard

Re: Boxplot, einzelne Datenpunkte

Verfasst: Di Aug 18, 2020 10:10 am
von Charlotte1234
Hallo Bernhard,

das sieht schonmal besser aus. Ich habe einiges zu dieser Funktion gefunden. Leider funktioniert es immer noch nicht, was aber glaube ich an meinem können liegt :P Könntest du den Befehl noch etwas mehr ausführen? Ich habe es mit unterschiedlichen Versionen versucht. Ich glaube der Fehler liegt daran dass ich nicht weiß was ich für x und y einsetzen muss. Meine maximalen werte für die x/y- Achse?


Also so sieht mein Boxplot bisher aus:

Re: Boxplot, einzelne Datenpunkte

Verfasst: Di Aug 18, 2020 10:37 am
von EDi
Ich bin mir ziemlich sicher, dass dein angehängte Beispiel mit ggplot2 erstellt wurde.

Re: Boxplot, einzelne Datenpunkte

Verfasst: Di Aug 18, 2020 10:50 am
von Charlotte1234
Okay, aber meinte du nicht das es auch bei boxplot() möglich ist die einzelnen Werte zusätzlich anzeigen zu lassen?

Re: Boxplot, einzelne Datenpunkte

Verfasst: Di Aug 18, 2020 10:59 am
von bigben
EDi hat Recht: Du hast uns Code zum Standard-Grafiksystem gepostet und eine Beispielgrafik mit dem ggplot2-System, das neuer ist, sich aber langsam zum de facto-Standard entwickelt. Die gestellte Aufgabe lässt sich mit beiden Systemen leicht lösen.

Code: Alles auswählen

bsp <- data.frame(gruppe = 1:4,
                  werte = rbeta(100, 3, 15))

boxplot(werte ~ gruppe, data = bsp)
points(x = jitter(bsp$gruppe), y = bsp$werte, pch = 20)
Merkwürdig finde ich es immer, wenn wenn der Boxplot einen Ausreißer anzeigt und ein Datenpunkt dann einmal als Punkt vom Boxplot und einmal als Punkt aus der Punktwolke erscheint. Aus genau diesem Grund verwende ich wenn möglich keine gejitterten Punkte an dieser Stelle sondern einen beehive-Plot mit dem Paket ggbeeswarm. Dazu müsstest Du dann aber auf ggplot2 ausweichen: https://cran.r-project.org/web/packages ... amples.pdf

LG,
Bernhard

Re: Boxplot, einzelne Datenpunkte

Verfasst: Di Aug 18, 2020 12:57 pm
von bigben
Nachtrag: So könnte das mit dem ggbeeswarm-Package aussehen:

Code: Alles auswählen

bsp <- data.frame(gruppe = as.factor(1:4),
                  werte = rbeta(500, 3, 15))
library(ggplot2)
library(ggbeeswarm)
ggplot(bsp, aes(x = gruppe, y = werte)) +
  geom_boxplot() +
  geom_beeswarm()
Rplot03.jpeg
Man sieht schön, dass die Ausreißer-Punkte im Boxplot mit den identischen Datenpunkten im überlagerten Punktmuster überlagert werden. Außerdem erinnert die äußere Form dieses Plots ein wenig an einen Violin-Plot, was ich visuell hilfreich finde. Ist aber nicht mehr das Gleiche wie der Plot in Deiner Eingangsfrage.

LG,
Bernhard