Handbuch annotate ein ggplot mit verschiedenen Labels, in verschiedenen Facetten

StackOverflow https://stackoverflow.com/questions/2417623

  •  19-09-2019
  •  | 
  •  

Frage

JD Lange hat mir geholfen, mit diesem: Frage über manuelle Annotation .

Aber ist es möglich, etwas ähnliches auf einer facettierte Handlung zu tun, so dass das Etikett Stil auf den Linienstil entspricht (aestetics) und in eine Weise, die ich individuell verschiedene Facetten mit Anmerkungen versehen kann?

Einige Daten:

funny <- structure(list(Institution = structure(c(1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("Q-branch", 
"Some-Ville", "Spectre"), class = "factor"), Type = structure(c(5L, 
6L, 1L, 3L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 
6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 
6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L), .Label = c("Korte videregående uddannelser", 
"Mammas beer", "Mellemlange videregående uddannelser", "Tastes good", 
"Unknown", "Your"), class = "factor"), År = c(2008L, 2008L, 
2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 
2008L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 
2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 
2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2006L, 2006L, 
2006L, 2006L, 2006L, 2006L, 2006L, 2006L, 2006L, 2006L, 2006L, 
2006L), Mndr = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 15L, 15L, 
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 27L, 27L, 27L, 
27L, 27L, 27L, 27L, 27L, 27L, 27L, 27L, 27L), Data = c(159L, 
NA, NA, 23L, 204L, NA, NA, 12L, 256L, NA, NA, 24L, 166L, 6L, 
NA, 43L, 228L, NA, NA, 20L, 196L, 11L, NA, 37L, 99L, 14L, 9L, 
96L, 147L, 7L, 5L, 91L, 100L, 10L, 7L, 126L, 60L, 17L, 6L, 106L, 
78L, 18L, 13L, 140L, 48L, 23L, 5L, 136L)), .Names = c("Institution", 
"Type", "År", "Mndr", "Data"), class = "data.frame", row.names = c(NA, 
-48L))

Und ein facettiertes Grundstück:

ggplot(funny, aes(Mndr, y=Data, group=Type, col=Type)) +
  geom_line() +
  facet_grid(.~Institution)

Vielen Dank im Voraus für Ihre Hilfe!

War es hilfreich?

Lösung

Die Idee ist, dass für jede manuelle Annotation Sie nicht nur das Etikett definieren haben, aber alle Variablen, die die Platte, Farbe definieren, usw. Der folgende Code fügt zwei Etiketten in verschiedenen Panels.

pl <- ggplot(funny, aes(Mndr, y=Data, group=Type, col=Type))+geom_line()
      +facet_grid(.~Institution)   #your plot
nd <- data.frame(Institution=c("Q-branch","Some-Ville"),  #panel
                 Type=c("Unknown", "Tastes good"),        #color
                 Mndr=c(7,12),                            #x-coordinate of label
                 Data= c(170,50),                         #y-coordinate of label
                 Text=c("Label 1", "Label 2"))            #label text
# add labels to plot:
pl <- pl + geom_text(aes(label=Text), data=nd, hjust=0, legend=FALSE)
pl

Die legend=FALSE Option wird sichergestellt, dass das kleine a der den Text angibt, sind nicht auf die Legende hinzugefügt. Sie haben nicht einen Datenrahmen für die Etiketten haben müssen, eine separate geom_text für jeden haben könnte, aber ich finde diese Art und Weise einfacher.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top