Ich habe ein ggplot2
Liniendiagramm aus drei Datenrahmen, für die ich das Farbschema gesteuert habe. Ich habe stattdessen linetype
verwendet, um zwischen den Zeilen zu unterscheiden. Dies führt dazu, dass eine Legende nicht automatisch generiert wird. Wie kann ich eine Legende für dieses Diagramm erstellen?Hinzufügen von Legende zu ggplot aus mehreren Datenrahmen mit kontrollierten Farben
tpAct <- data.frame(
Date=seq.Date(as.Date('2017-09-01'), as.Date('2018-01-01'),by='month'),
Reg1=rnorm(5, 10, 5),
Reg2=rnorm(5, 15, 5),
Reg3=rnorm(5, 20, 5),
Reg4=rnorm(5, 25, 5),
Reg5=rnorm(5, 30, 5),
Total=rnorm(5, 60, 5)
)
tpOL <- data.frame(
Date=seq.Date(as.Date('2017-09-01'), as.Date('2018-01-01'),by='month'),
Reg1=rnorm(5, 10, 5),
Reg2=rnorm(5, 25, 5),
Reg3=rnorm(5, 20, 5),
Reg4=rnorm(5, 25, 5),
Reg5=rnorm(5, 30, 5),
Total=rnorm(5, 60, 5)
)
tpModL2 <- data.frame(
Date=seq.Date(as.Date('2017-09-01'), as.Date('2018-01-01'),by='month'),
Reg1=rnorm(5, 10, 5),
Reg2=rnorm(5, 25, 5),
Reg3=rnorm(5, 20, 5),
Reg4=rnorm(5, 25, 5),
Reg5=rnorm(5, 30, 5),
Total=rnorm(5, 60, 5)
)
ggplot() +
geom_line(data=tpAct, aes(x=Date, y=Reg1), color='red', size=1.25) +
geom_line(data=tpAct, aes(x=Date, y=Reg2), color='blue', size=1.25) +
geom_line(data=tpAct, aes(x=Date, y=Reg3), color='green', size=1.25) +
geom_line(data=tpAct, aes(x=Date, y=Reg4), color='pink', size=1.25) +
geom_line(data=tpAct, aes(x=Date, y=Reg5), color='yellow', size=1.25) +
geom_line(data=tpAct, aes(x=Date, y=Total), color='black', size=1.25) +
geom_line(data=tpOL, aes(x=Date, y=Reg1), linetype=5, color='red', size=1.25) +
geom_line(data=tpOL, aes(x=Date, y=Reg2), linetype=5, color='blue', size=1.25) +
geom_line(data=tpOL, aes(x=Date, y=Reg3), linetype=5, color='green', size=1.25) +
geom_line(data=tpOL, aes(x=Date, y=Reg4), linetype=5, color='pink', size=1.25) +
geom_line(data=tpOL, aes(x=Date, y=Reg5), linetype=5, color='yellow', size=1.25) +
geom_line(data=tpOL, aes(x=Date, y=Total), linetype=5, color='black', size=1.25) +
geom_line(data=tpModL2, aes(x=Date, y=Reg1), linetype=4, color='red', size=1.25) +
geom_line(data=tpModL2, aes(x=Date, y=Reg2), linetype=4, color='blue', size=1.25) +
geom_line(data=tpModL2, aes(x=Date, y=Reg3), linetype=4, color='green', size=1.25) +
geom_line(data=tpModL2, aes(x=Date, y=Reg4), linetype=4, color='pink', size=1.25) +
geom_line(data=tpModL2, aes(x=Date, y=Reg5), linetype=4, color='yellow', size=1.25) +
geom_line(data=tpModL2, aes(x=Date, y=Total), linetype=4, color='black', size=1.25) +
labs(x='', y='Total Balances ($B)')
Ich denke, wenn Sie richtig in Ihre Daten formatiert " lang "Format, können Sie nur die Datenquelle zu' Linientype' zuordnen und Sie werden Ihre Legende haben. – Mako212
Sie können diesen Plot mit einem einzigen Aufruf von 'geom_line' machen.Um dies zu tun, (1) wandeln Sie die einzelnen Datenrahmen in ein langes Format um, (2) stapeln Sie die einzelnen Datenrahmen in einen einzelnen Datenrahmen und fügen Sie eine Indikatorspalte hinzu, um den Namen des Quelldatenrahmens zu markieren. Dann können Sie den Quelldatenrahmen dem Linientyp und "Reg" der Farbe zuordnen, wodurch Sie eine Legende erhalten und den benötigten Code drastisch reduzieren. Wenn Sie Beispiele für jeden Ihrer drei Datenrahmen bereitstellen, können wir Ihnen einen Code zur Verfügung stellen, der Ihnen zeigt, wie Sie dies tun. – eipi10
@GauravBansal Sie müssen Ihre Daten posten – PoGibas