You can change the legend without changing the schedule using override.aes . You did not provide sample data, so I used the mtcars built-in data mtcars for illustration. The key line of code begins with guides . shape=c(16,NA) gets rid of one of the legend point markers by setting its color to NA . linetype=c(0,1) gets rid of another legend line by setting its line type to 0 . In addition, you do not need to save a graph after each line of code. Just add + to each line and concatenate them all together in one expression, as in the example below.
library(reshape2) library(ggplot2) mtcars$mpg.line = mtcars$mpg mtcars.m = melt(mtcars[,c("mpg","mpg.line","wt")], id.var="wt") mtcars.m$variable = factor(mtcars.m$variable) ggplot() + geom_line(data=mtcars.m[mtcars.m$variable=="mpg.line",], aes(wt, value, colour=variable), lwd=1) + geom_point(data=mtcars.m[mtcars.m$variable=="mpg",], aes(wt, value, colour=variable), size=3) + guides(colour=guide_legend(override.aes=list(shape=c(16,NA), linetype=c(0,1)))) + theme_grey(base_size=15)

source share