2017-10-04 5 views
0

Ich habe einen Datenrahmen wie folgt aus:Wie wählt man manuell die Farben eines Boxplots mit der Bedeutung in ggplot2?

 values TF group_num group 
1 0.22722942 FALSE   5  5 
2 -0.36530296 TRUE   3  3 
3 0.38795866 FALSE   4  4 
4 0.48439459 FALSE   4  4 
5 0.93879881 FALSE   4  4 
6 -0.03598468 TRUE   4  4 
7 -0.49993149 FALSE   4  4 
8 1.26200426 FALSE   5  5 
9 -0.02348821 TRUE   4  4 
10 -0.78135675 FALSE   4  4 
11 -0.00466411 FALSE   2  2 
12 -0.28493506 TRUE   3  3 
13 -1.41763529 TRUE   4  4 
14 2.03987995 FALSE   1  1 
15 -0.70235537 FALSE   3  3 
16 0.36176799 FALSE   2  2 
17 0.22171013 FALSE   5  5 
18 -0.56860951 FALSE   4  4 
19 -0.51199794 TRUE   4  4 
20 -0.92628365 FALSE   4  4 

group_num = Numerisch
Gruppe = Faktoren

Also, wenn ich einen boxplot erstellen möchten, die die Bedeutung von mit geom_signif zeigt bekam ich einen Fehler, wenn ich benutze diese:

ggplot(test, aes(x = TF, y = values, fill=group_num)) + 
    geom_boxplot() + 
    stat_signif(comparisons=list(c('TRUE','FALSE')),map_signif_level = T) + 
    facet_grid(~group_num) + 
    scale_fill_manual(values=c("firebrick2","darkorchid4","dodgerblue4","deepskyblue4","gray48")) + 
    theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     panel.background = element_blank(), 
     axis.line = element_line(colour = "black"), 
     strip.text.x = element_blank()) 

Error: Continuous value supplied to discrete scale

weil ich group_num verwenden, die numerisch

Allerdings, wenn ich die Gruppe (Faktoren) verwenden bekam ich die Ausgabe wie folgt aus:

ggplot(test, aes(x = TF, y = values, fill=group)) + 
    geom_boxplot() + 
    stat_signif(comparisons=list(c('TRUE','FALSE')),map_signif_level = T)+ 
scale_fill_manual(values=c("firebrick2","darkorchid4","dodgerblue4","deepskyblue4","gray48"))+ 
      facet_grid(~group) + 
     scale_color_manual(values=c("firebrick2","darkorchid4","dodgerblue4","deepskyblue4","gray48")) + 
     theme(panel.grid.major = element_blank(), 
      panel.grid.minor = element_blank(), 
      panel.background = element_blank(), 
      axis.line = element_line(colour = "black"), 
      strip.text.x = element_blank()) 

enter image description here

Allerdings möchte ich die wesentlichen Punkte für alle Gruppen erhalten. Um das zu tun, wenn ich group_num verwende, ohne Farben zu wählen, funktioniert es. und ich erhalte eine Ausgabe wie folgt aus:

ggplot(test, aes(x = TF, y = values, fill=group_num)) + 
    geom_boxplot() + 
    stat_signif(comparisons=list(c('TRUE','FALSE')),map_signif_level = T) + 
    facet_grid(~group_num) + 
    theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     panel.background = element_blank(), 
     axis.line = element_line(colour = "black"), 
     strip.text.x = element_blank()) 

enter image description here

Also, meine Frage ist, wie kann ich eine Gruppe (as.factor) verwenden, um eine Ausgabe wie das erste Bild mit Bedeutung auf die Spitze zu kommen für alle verschiedenen Gruppen, die ich facet_grid benutze?

Antwort

1

Try Hinzufügen Gruppe als fill (als Faktor) Variable in dem geom_boxplot Call:

ggplot(test, aes(x = TF, y = values)) + 
    geom_boxplot(aes(fill=group)) 
Verwandte Themen