2016-06-21 9 views
0

I mit vier Säulen einen R-Datenrahmen aufweisen herzustellen:Wie ein facettiertes Stück in R ggplot2 mit getrennten Abschnitten

  • Probe
  • miRNA
  • x
  • y

Ich möchte Korrelationsdiagramme für x und y produzieren, die durch miRNA mit ggplot2 facettiert sind. Ich möchte auch eine Aufteilung der Diagramme in zwei Abschnitte basierend auf der Richtung der Korrelation, so dass alle Diagramme mit positiven Korrelation im oberen Abschnitt sind und alle Diagramme mit negativer Korrelation sind im unteren Abschnitt.

Mit facet_wrap kann ich keinen Weg finden, diese Art von Pause einzufügen, zumindest nicht in einer Weise, die allgemein auf verschiedene Anzahlen von miRNAs angewendet werden könnte - z. Wenn 2 miRNAs mit positiver Korrelation und 7 mit negativer Korrelation vorhanden sind, wird ein 3 x 3 Gitter gezeichnet, wobei die obere Reihe eine Mischung aus positiven und negativen Plots enthält, während ich in diesem Fall eine obere Reihe mit den 2 positiven Punkten möchte miRNAs und die 7 negativen miRNAs in nachfolgenden Reihen, wobei gegebenenfalls Lücken vorhanden sind, so dass alle Plots die gleiche Größe haben.

Ich dachte, mit facet_grid funktioniert möglicherweise. Ich habe eine zusätzliche Spalte zum Datenrahmen namens 'sign' hinzugefügt, einen Faktor mit den Stufen 'Negativ' und 'Positiv' und dann plot + facet_grid(sign~miRNA) verwendet, aber das hat nicht funktioniert - alle negativ korrelierten miRNAs wurden als leere Graphen in der positiver Abschnitt und umgekehrt.

Entschuldigung für den Mangel an Bildern, ich bin neu hier so unfähig, sie zu veröffentlichen.

+0

Ihre beste Wette wäre, zu sagen, '' facet_wrap' nrow verwenden = 2' und haben die miRNA durch Korrelation bestellt –

+3

Sie können ein Beispiel-Datensatz hinzufügen und den Code, den Sie bisher verwendet haben, so dass Ihr Beispiel ist [reproduzierbar] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – aosmith

Antwort

0

einen Blick hier nehmen: http://docs.ggplot2.org/0.9.3.1/facet_wrap.html

# To change plot order of facet wrap, 
# change the order of varible levels with factor() 
diamonds$color <- factor(diamonds$color, levels = c("G", "J", "D", "E", "I", "F", "H")) 
# Repeat first example with new order 
d <- ggplot(diamonds, aes(carat, price, fill = ..density..)) + 
xlim(0, 2) + stat_binhex(na.rm = TRUE) + theme(aspect.ratio = 1) 
d + facet_wrap(~ color) 

Sie sollten Ihre pro Gruppe Korrelationen zu berechnen Lage sein, dann setzen miRNA Faktorstufen in Korrelation Reihenfolge. facet_wrap sollte dann einfach funktionieren.

Verwandte Themen