2013-11-22 15 views
6

Ich versuche, ein Diagramm mit facet_wrap mit einem facet_grid innerhalb jeder der umschlossenen Facetten zu erstellen, aber ich kann nicht. Irgendwelche Vorschläge?Verwenden von facet_grid und facet_wrap Zusammen

Zum Beispiel, wenn ich tue Jahr zu Jahr Vergleiche für Monatsmittelwerte von 2 Mengen, würde ich gerne haben -

  • 2 Facetten, eine für jede Menge,
  • Jeder von THE5 Menge Facetten hat 12 Facetten in der es für jeden der Monate
  • jeden Monat Facette hat zwei Facetten in der es für jeden des Jahres

der nächstgelegene ich kommen kann, ist dies,

library(ggplot2) 

# create dataset 
df <- data.frame(
    Facet1 = rep(c(1,2,3),24), 
    Facet2 = c(rep(1,24),rep(2,24)), 
    Year = rep(c(rep(2012,12),rep(2013,12)),2), 
    Month = rep(rep(1:12,2),2), 
    ValueX = sample(0:5,144,replace = TRUE), 
    ValueY = sample(0:5,144,replace = TRUE) 
) 

df <- df[!(df$Facet1 == 2 & df$Facet2 == 2),] 

ggplot(df, aes(ValueX, ValueY)) + geom_point() + 
    facet_grid(Facet2 + Year ~ Month) 

enter image description here

Während, was würde ich im Idealfall wie, etwas entlang der Linien dieser ist (In meinem Kopf, analog zu ggplot() ... + facet_grid(Year ~ Month) + facet_wrap(Facet2~.)) -

enter image description here

PS: Ich denke, die Facetten in letzterem sind viel besser unterscheidbar und durchsichtiger. Bemerkungen? Irgendwelche Alternativen?

+1

ggplot2 dies nicht direkt unterstützt, aber jemand Mit ausgefallenen Grid-Fähigkeiten könnte man das machen. Sie können die Grafik und das gleiche auch in

+0

Also, 'facet_grid' gibt Ihnen die gewünschte Zeichnung, aber Sie sind nicht zufrieden mit den Abständen zwischen den Facetten und mit den Facettenstreifen auf der rechten Seite und möchten sie ändern? – Roland

+0

@Roland - 'facet_grid (Jahr ~ Monat) + facet_wrap (Facet2 ~.)' Ist was ich versuche zu erreichen, also gibt es 2 Facetten für 'Facet2', und dann wird jede dieser Facetten dann in die 24 'JahrMonat' Facetten. Die aktuelle Methode von facet_grid (Facet2 + Year ~ Month) bewerkstelligt, dass die 48 Facetten betroffen sind, aber ich glaube, dass das zweite Bild eine klarere Facettierung als die erste ist und eine bessere Lesbarkeit ermöglicht. – TheComeOnMan

Antwort

0

Vielleicht missverstehe ich, was du versuchst zu tun, aber erreicht das nicht, was du willst?

ggplot(df, aes(ValueX, ValueY)) + geom_point() + 
    facet_grid(Facet2 ~ Facet1) 

Wenn Sie die Facette Titel ändern Ihrem Beispiel entsprechen haben einen Blick auf das labeller Argument von facet_grid().

+0

Danke, aber nein. Ich versuche, mehrere Ebenen der Facettierung zu implementieren, nicht die eine Ebene der Facettierung selbst zu bearbeiten. – TheComeOnMan

+0

Wenn dies nicht das erreicht, was Sie wollen, müssen Sie Ihre Frage verbessern. Dies erzeugt genau das, was Sie in Ihrem Modell zeigen. – Roland

+0

Vielen Dank für Ihre Eingabe Jungs, ich habe die Frage bearbeitet und gezeigt, etwas, das ich zusammengehackt habe etwas, das aussieht wie, was ich versuche zu bekommen.Es tut mir leid, wenn die Frage vorher nicht klar war, hoffentlich ist es jetzt klar. – TheComeOnMan

0

Ich bin nicht sicher, zu verstehen, was Sie tun wollen, aber ich denke, es ist einfacher zu bekommen, was Sie lattice` hier mit wollen:

library(latticeExtra) 
xyplot(ValueY~ValueX|Facet1+Facet2,data=df, 
      between=list(x=2,y=0), 
    par.settings = ggplot2like(),axis=axis.grid) 

enter image description here

+0

Vielen Dank für Ihre Eingabe @agstudy, ich habe die Frage bearbeitet und etwas gezeigt, das ich zusammengehackt habe etwas, das aussieht, als ob ich versuche, zu bekommen. Ich habe 'Gitter' vorher nicht benutzt, also konnte ich deinen Vorschlag nicht zu sehr manipulieren, aber ich habe versucht, mit dem' Facet1 + Facet2' Part zu spielen, der mich nirgendwo hingebracht hat. – TheComeOnMan

Verwandte Themen