Diese Art von Fragen werden viel einfacher zu lösen, wenn Sie Ihr Denken an die Art anpassen, wie sich ggplot2
der Grafik nähert. ggplot2
ist um die Idee herum organisiert, dass alles, was in Ihrem Graphen erscheint, im Prinzip als eine Spalte in Ihrem Datenrahmen existieren sollte. (Es gibt natürlich Ausnahmen, aber das ist die allgemeine Idee.)
Ihr Versuch, dieses Diagramm Stück für Stück, Zeile für Zeile, aus verschiedenen Datenrahmen zu erstellen und dann ihnen Farben zuzuweisen, ist sehr un ggplot2
ish. Wenn Sie Objekte in Ihrem Diagramm mit verschiedenen Farben beschriften möchten, sollte Ihr erster Gedanke immer lauten:
Wie kann ich diese Informationen zur Farbbeschriftung als Variable kodieren?
In diesem Fall ist die Lösung ziemlich einfach. Einfach rbind
deine drei Datenrahmen zusammen (du musst sicherstellen, dass die Spaltennamen zuerst zusammenpassen) und eine neue Spalte erstellen, sagen wir grp
, die drei Ebenen hat, die deinen drei Datenrahmen entsprechen:
%Vor%
und dann map die Variable grp
auf die ästhetische Farbe im ggplot-Aufruf:
%Vor%
Wenn Sie die Standardfarben nicht mögen, können Sie Ihre eigene Farbe mit scale_colour_manual
:
angeben
%Vor%
oder Sie können einige nette "vorausgewählte" Paletten von scale_colour_brewer
verwenden.
EDIT: Ich habe einen Tippfehler oben korrigiert, um sicherzustellen, dass grp
ein Faktor ist. Hier ist meine endgültige Version:
%Vor%