Box Plots mit Fallzahl in der x-Achse

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

Antworten
ehi

Box Plots mit Fallzahl in der x-Achse

Beitrag von ehi »

Hallo!
Habe ein kleines Problem mit dem Erstellen von schönen Box Plots mit Fallzahlen auf der x-Achse. Der Code sieht so aus:

Code: Alles auswählen

library(reshape2)
library(plyr)

# creating random data
df <- data.frame(
  sex       = factor(rbinom(100,1,0.5), levels = c(0,1), labels = c("male", "female")),
  age_group = factor(sample(1:3,100,replace=T), levels = 1:3, labels = c("young", "middle", "old")),
  variable  = rnorm(100,50,5))

# adding new column including numbers of cases per age group
df1 <- ddply(df, c("age_group", "sex"), transform, N = length(age_group))
# concatenate age_group label and numer of cases, add "\n" for line break in tick labels
df1$label <- paste0(df1$age_group, "\n" , "(n=",df1$N,")")

# creating ggplot
ggplot(df1,aes(x=label,y=variable))+
  geom_boxplot()+
  facet_grid(.~sex, scales = "free")
Man bekommt einen Plot wie unten.
Ich habe jetzt 2 Probleme:
1) Die x-Achse ist nicht geordnet und wenn ich das z.B. mit

Code: Alles auswählen

levels(df1$label) <- names(table(df1$label))[c(5,6,1,2,3,4)]
versuche, dann gibt es ein Wirrwarr in dem Fallzahl und label nicht mehr zueinander stimmen.
2) möchte ich eigentlich als Label noch das Größergleich-Zeichen einfügen. Für GGplot ist das wohl das Label "\u2265". Das funktioniert aber auch nicht..

Ich wäre über Hilfe sehr sehr dankbar!!!
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Box Plots mit Fallzahl in der x-Achse

Beitrag von bigben »

Ich glaube, Du willst einen geordneten Faktor anstelle eines einfachen Faktors und musst dann die Ordnung/Reihenfolge der Level des Faktors anpassen. Zum Einlesen: http://www.cookbook-r.com/Manipulating_ ... _a_factor/

Alternativ kannst Du auch die x-Achse beeinflussen via scale_x_discrete(limits=...). Siehe dazu http://www.cookbook-r.com/Graphs/Axes_(ggplot2)/ die Überschrift Discrete axis und die Unterüberschrift "Changing theorder of items".

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten