Search code examples
rggplot2transparencylegendaesthetics

ggplot legend key color and transparency


I'm plotting multiple lines together and they are transparent. However, I do not want the legend color to have any transparency. I attempted the override.aes but without success. This is similar to this question, but essentially the opposite.

Currently I have this

# plot all the lines
plt <- ggplot(dt_plot,aes(x = x, y = mean_change, color = model)) +
        geom_line(aes(group = interaction(model, boot)), alpha = 0.3) +
        xlab('houses/acre') + 
        ylab('change in % prevalance') +
        scale_colour_manual(values=cbbPalette) + 
        theme_few()  + 
        theme(text=element_text(size=10),legend.title = element_blank()) + 
        guides(fill = guide_legend(override.aes= list(alpha = 1)))

transparent lines and transparent legend colors

Cheers


Solution

  • Your approach is perfectly fine except for one small issue: you need

    guides(color = guide_legend(override.aes = list(alpha = 1)))
    

    instead as geom_line doesn't have the fill aesthetic.