Boxplot, einzelne Datenpunkte

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
Charlotte1234
Beiträge: 6
Registriert: Mo Aug 17, 2020 6:02 pm

Boxplot, einzelne Datenpunkte

Beitrag 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 :)
Dateianhänge
Bildschirmfoto 2020-08-17 um 18.21.48.png
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Boxplot, einzelne Datenpunkte

Beitrag 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...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Boxplot, einzelne Datenpunkte

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Charlotte1234
Beiträge: 6
Registriert: Mo Aug 17, 2020 6:02 pm

Re: Boxplot, einzelne Datenpunkte

Beitrag 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:
Dateianhänge
Rplot, all 246.png
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Boxplot, einzelne Datenpunkte

Beitrag von EDi »

Ich bin mir ziemlich sicher, dass dein angehängte Beispiel mit ggplot2 erstellt wurde.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Charlotte1234
Beiträge: 6
Registriert: Mo Aug 17, 2020 6:02 pm

Re: Boxplot, einzelne Datenpunkte

Beitrag von Charlotte1234 »

Okay, aber meinte du nicht das es auch bei boxplot() möglich ist die einzelnen Werte zusätzlich anzeigen zu lassen?
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Boxplot, einzelne Datenpunkte

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Boxplot, einzelne Datenpunkte

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten