Ich habe eine gestapelte areaplot mit ggplot2 gemacht:ggplot2: Overlay Kontrollgruppe Linie auf die Grafik-Panel eingestellt
dists.med.areaplot<-qplot(starttime,value,fill=dists,facets=~groupname,
geom='area',data=MDist.median, stat='identity') +
labs(y='median distances', x='time(s)', fill='Distance Types')+
opts(title=subt) +
scale_fill_brewer(type='seq') +
facet_wrap(~groupname, ncol=2) + grect #grect adds the grey/white vertical bars
Es sieht wie folgt aus:
ich eine Überlagerung des Profils hinzugefügt werden soll des Kontrollgraphen (unten rechts) zu allen Graphen in der Ausgabe (Gruppenname == rowH ist die Kontrolle).
Bisher haben meine Bemühungen dies ergab:
cline<-geom_line(aes(x=starttime,y=value),
data=subset(dists.med,groupname=='rowH'),colour='red')
dists.med.areaplot + cline
ich die 3 rote Linien müssen 1 rote Linie, die die Spitze des dunkelblauen Abschnitt streicht. Und ich brauche diese identische Zeile (die rowH-Zeile), um jedes der Panels zu überlagern.
Die Datenrahmen sieht wie folgt aus:
> str(MDist.median)
'data.frame': 2880 obs. of 6 variables:
$ groupname: Factor w/ 8 levels "rowA","rowB",..: 1 1 1 1 1 1 1 1 1 1 ...
$ fCycle : Factor w/ 6 levels "predark","Cycle 1",..: 1 1 1 1 1 1 1 1 1 1 ...
$ fPhase : Factor w/ 2 levels "Light","Dark": 2 2 2 2 2 2 2 2 2 2 ...
$ starttime: num 0.3 60 120 180 240 300 360 420 480 540 ...
$ dists : Factor w/ 3 levels "inadist","smldist",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value : num 110 117 115 113 114 ...
Die rote Linie sollte als die Summe der value
bei jedem Startzeit berechnet werden, wobei name = ‚rowH‘. Ich habe versucht, cline
die folgenden Möglichkeiten zu erstellen. Jeder führt zu einem Fehler oder einer fehlerhaften Ausgabe:
Gedanken?
ETA:
Es scheint, dass das Problem, das ich mit 'dists' not found
aufwies, wurde hat mit der Tatsache zu tun, dass die ursprüngliche Handlung, dists.med.areaplot
über qplot erstellt wurde. Um dieses Problem zu vermeiden, kann ich nicht auf einem Qplot aufbauen. Dies ist der Code für das Arbeitsstück:
cline.data <- subset(
ddply(MDist.median, .(starttime, groupname), summarize, value = sum(value)),
groupname == "rowH")
cline<-geom_line(data=transform(cline.data,groupname=NULL), colour='red')
dists.med.areaplot<-ggplot(MDist.median, aes(starttime, value)) +
grect + nogrid +
geom_area(aes(fill=dists),stat='identity') +
facet_grid(~groupname)+ scale_fill_brewer(type='seq') +
facet_wrap(~groupname, ncol=2) +
cline
in diesem graphset resultierende:
Ich glaube nicht, dass Sie die 'groupname' Variable entfernen möchten. – hadley
Wenn Sie 'Gruppenname' entfernen, wird das dann nicht über alle Facetten geplottet? – JoFrhwld
Hmm, vielleicht habe ich die Frage missverstanden. – hadley