Ich habe zwei Diagramme und ich versuche, eine über der anderen zu überlagern:Übereinanderlegen zweier Graphen mit ggplot2 in R
Ein Beispiel des Datenrahmens „ge“ sieht wie folgt aus. In Wirklichkeit gibt es 10 Gene, die mit 200 Proben je, so gibt es 2000 Zeilen und 3 Spalten:
Exp Gene Sample
903.0 1 1
1060.0 1 2
786.0 1 3
736.0 1 4
649.0 2 1
657.0 2 2
733.5 2 3
774.0 2 4
Ein Beispiel des Datenrahmens „avg“ sieht wie folgt aus. Dies ist ein Durchschnitt der Datenpunkte für jedes Gen über alle Proben hinweg. In Wirklichkeit hat dieser Graph 10 Gene, so dass die Matrix 10 Reihen 4COL X ist:
mean Gene sd se
684.2034 1 102.7142 7.191435
723.2892 2 100.6102 7.044122
Der erste Graph Graphen, die eine Linie des mittleren Ausdrucks für jedes Gen zusammen mit der Standardabweichung für jeden Datenpunkt.
Die zweite Grafik zeigt die Genexpression in Form einer Linie für jede Probe über alle Gene.
linegraphs <- ggplot(ge, aes(x=Gene, y=Expression, group=Samples, colour="#000099")) + geom_line() + scale_x_discrete(limits=flevels.tge)
würde Ich magavggraph oben auf Liniendiagramme zu überlagern. Gibt es eine Möglichkeit, dies zu tun? Ich habe versucht avggraph + linegraphs, aber ich bekomme einen Fehler. Ich denke, das liegt daran, dass die Graphen von zwei verschiedenen Datenrahmen erzeugt werden.
Ich sollte auch darauf hinweisen, dass die Achsen beider Graphen gleich sind. Beide Graphen haben die Gene auf der X-Achse und die Genexpression auf der Y-Achse.
Jede Hilfe würde sehr geschätzt werden!
Dank @Sven. Das funktioniert, aber wenn ich das tue, ist die Avg-Linie (in schwarz) hinter den rosa Linien. Und weil in meinen Daten so viele rosa Linien zu sehen sind, können Sie die schwarze nicht sehen. Irgendwelche Vorschläge, wie man es dreht? – Sheila
@ShilaP Ändere einfach die Reihenfolge der geoms: 'ggplot() + geom_line (Daten = ge, aes (x = Gen, y = Exp, Gruppe = Beispiel, color =" # 000099 "), show_guide = FALSE) + geom_line (Daten = Mittelwert, aes (x = Gen, y = Mittelwert)) + geom_errorbar (Daten = Mittelwert, Aes (x = Gen, ymin = Mittelwert-sd, ymax = Mittelwert + Standardabweichung), Breite = .1) + geom_point (Daten = Mittelwert, Aes (x = Gen, y = Mittelwert)) ' –
Got it! Ja, ich dachte, dass es erforderlich wäre, den Code für geom_line() irgendwie umzudrehen, aber ich konnte es nicht genau herausfinden. Danke für Ihre Hilfe! – Sheila