I have a simple data frame that I’m trying to do a combined line and point plot using ggplot2. Supposing my data looks like this:
df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20),
group=c(rep("a",10),rep("b",10)))
And I’m trying to make a plot:
g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8))
g
The result looks fine with one exception. It has an extra legend showing the alpha for my geom_point layer.

How can I keep the legend showing group colors, but not the one that shows my alpha settings?
Aesthetics can be set or mapped within a
ggplotcall.aes(...)is mapped from the data, and a legend created.aes().In this case, it appears you wish to set
alpha = 0.8and mapcolour = group.To do this,
Place the
alpha = 0.8outside theaes()definition.For any mapped variable you can supress the appearance of a legend by using
guide = 'none'in the appropriatescale_...call. eg.Which will return an identical plot
EDIT
@Joran’s comment is spot-on, I’ve made my answer more comprehensive