Один из способов получить легенду состоит в том, чтобы добавить цвет и заполнить внутри отображения эстетики и дать им имя, которое вы хотите отобразить в легенде, а затем присвоить обеим шкалам одинаковое имя и значения с scale_...._manual)()
, какэто:
library(ggplot2)
# dummy data
df1 <- data_frame(df1 = runif(100))
df2 <- data_frame(df2 = runif(100))
df3 <- data_frame(df3 = runif(100))
df4 <- data_frame(df4 = runif(100))
ggplot() +
geom_density(data=df1, aes(x=df1, color='df1', fill='df1'), alpha = 0.2) +
geom_density(data=df2, aes(x=df2, color='df2', fill='df2'), alpha = 0.2) +
geom_density(data=df3, aes(x=df3, color='df3', fill='df3'), alpha = 0.2) +
geom_density(data=df4, aes(x=df4, color='df4', fill='df4'), alpha = 0.2) +
scale_color_manual(name = 'Title', values=c('black', 'darkred', 'darkblue', 'darkgreen')) +
scale_fill_manual(name = 'Title', values=c('black', 'darkred', 'darkblue', 'darkgreen')) +
xlim(0.5,1) +
ggtitle('Density plots') +
xlab('Indices') +
ylab('Density')