Ich zeichne zwei Variablen in der gleichen Grafik, und jede Variable ist nach Jahr gruppiert. Meine Legende zeigt die Farbdifferenzierung nach Jahr, aber ich kann nicht herausfinden, wie man der Legende einen Linientyp hinzufügt. Im Idealfall würde es 4 Zeilen in der Legende sein: rosa = 2015, blau = 2016 und gepunktete Linie = Var1, durchgezogene Linie = Var2Wie können Legendeneigenschaften angepasst werden, um 2 Merkmale anzuzeigen?
Hier ist meine Probe df:
year <- c(2015,2015,2015,2015,2015,2015,2015,2015,2015,2015,2015,2015,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016)
month <-c(1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12)
Var1 <- sample(30:60, 24, rep=TRUE)
Var2 <- sample(70:90, 24, rep=TRUE)
df <- data.frame(year,month,Var1, Var2)
und Grundstück:
plot <- ggplot(df)+
geom_line(aes(x=as.factor(month), y=Var1,
group=as.factor(year), color=as.factor(year)), linetype=2, size=0.9)+
geom_point(aes(x=as.factor(month), y=Var1, group=as.factor(year)))+
geom_line(aes(x=as.factor(month), y=Var2,
group=as.factor(year), color=as.factor(year)), linetype=1, size=0.9)+
geom_point(aes(x=as.factor(month), y=Var2, group=as.factor(year)))+
theme_tufte()+
theme(legend.title=element_blank())+
labs(x=NULL,y="",title="Var1 vs. Var2")+
scale_x_discrete(expand=c(0,0.2),
labels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"))
plot
ich habe versucht, die aes innerhalb geom_line ändern, sowie das Hinzufügen & wenige scale_xxx_yyyy der Konfiguration, einschließlich scale_linetype_manual. Alles bisher erfolglos. Idealerweise muss ich meine Legende nicht separat zeichnen, sondern kann sie aus ggplot heraus steuern.
Aber es wäre gestrichelte Linien auf der Legende mit den blauen und roten schöner sein, wäre es nicht? – Joe
Für dieses Beispiel wäre das egal, da Sie 4 Legendenelemente erhalten würden (pink-full, pink-dotted, blau-full, blue-dotted), aber im Allgemeinen wollen wir jede Ästhetik für sich gruppieren. –
Es sieht gut aus, aber ich bin nicht über den Anfang hinausgekommen, da ich einen Fehler bekomme: Funktion "%>%" konnte nicht gefunden werden. Ist das in einem bestimmten Paket muss ich anrufen? – jesstme