2017-07-17 3 views
1

Ich würde gerne wissen, wie man jede Facette in meinem Balkendiagramm beschriftet. Im Moment verwende ich die Funktion "geom_signif", die perfekt funktioniert, außer dass die Annotation auf einer Facette auf die andere Facette kopiert wird.Wie beschriften Sie verschiedene Werte für jede Facette (Balkendiagramm) auf R?

Mein Code ist als solche:

geom_signif(annotation = c("p=0.01"), 
      y_position = c(9), xmin = c(2), xmax = c(3)) 

Meine Bar Grundstück:

enter image description here

Bitte beraten. Ich habe hier einige ähnliche Lösungen durchgelesen, habe es auf andere Weise versucht, aber ich kann es immer noch nicht herausfinden. Dies ist die nächstliegende und einfachste Lösung für das, was ich bisher bekommen habe, außer dass ich zwei verschiedene Anmerkungen (Beschriftung von p-Werte in diesem Fall - Ich habe ANOVA getrennt ausgeführt) auf den Facetten.

Antwort

0

Hier ist ein Beispiel, um es manuell zu dekonstruieren und mit neuen Anmerkungen zu rekonstruieren. Ich habe es verstanden, wie Sie manuelle Textanmerkungen pro Diagramm wollten. Diese (sehr manuelle) Lösung basiert auf einer anderen Antwort, How do I annotate p-values onto a faceted bar plots on R?, die genau das ist, wonach Sie suchen.

df <- data.frame(iris,type = c(1,2)) 

## Construct your plot exactly as you have already done 
## Annotations are replicated. 
myplot <- ggplot(df, aes(x=Species,y = Sepal.Length)) + 
    geom_boxplot() + 
    facet_grid(.~type) + 
    geom_signif(annotation = c("foo"),xmin = 1, xmax = 2,y_position = 7.5) 
myplot 

Original output with repeated annotations

## Disassemble plot 
myplot2 <- ggplot_build(myplot) 
myplot2$data[[2]] 
x xend  y yend annotation group PANEL shape colour textsize angle hjust vjust alpha family fontface lineheight 
1 1 1 7.392 7.500  foo  1  1 19 black  3.88  0 0.5  0 NA    1  1.2 
2 1 2 7.500 7.500  foo  1  1 19 black  3.88  0 0.5  0 NA    1  1.2 
3 2 2 7.500 7.392  foo  1  1 19 black  3.88  0 0.5  0 NA    1  1.2 
4 1 1 7.392 7.500  bar  1  2 19 black  3.88  0 0.5  0 NA    1  1.2 
5 1 2 7.500 7.500  bar  1  2 19 black  3.88  0 0.5  0 NA    1  1.2 
6 2 2 7.500 7.392  bar  1  2 19 black  3.88  0 0.5  0 NA    1  1.2 
    linetype size 
1  1 0.5 
2  1 0.5 
3  1 0.5 
4  1 0.5 
5  1 0.5 
6  1 0.5 
## Note there are 6 observations, 3 for each "PANEL". 
## Now, change the annotation on each "PANEL". 
myplot2$data[[2]]$annotation <- c(rep("foo",3),rep("bar",3)) 

## Reconstruct plot 
myplot3 <- ggplot_gtable(myplot2) 
plot(myplot3) 

Edited output

+0

Hallo @Therkel. Was, wenn ich nicht den gesamten Datensatz dafür habe? Ich analysiere es anhand der mittleren Punktzahlen für jede Gruppe/Balken-Plot. – MZZ

+0

Was meinen Sie, Sie haben die Daten nicht? Wenn Sie den Plot in Ihrer Frage für 'myplot' aufrufen, sollte nur der Code von' myplot2 <- ggplot_build (myplot) 'und darunter für Sie relevant sein. Der Code davor ist nur ein überprüfbares Beispiel. – Therkel

+0

Ich hoffe das macht Sinn! – Therkel

Verwandte Themen