Adding legend to a single line chart using ggplot

2019-05-06 23:43发布

问题:

I just try to make a line chart and add a legend to it using ggplot in R. The following is my code.

ggplot(mtcars, aes(x=mpg, y=wt)) + geom_line(stat = "identity") + scale_fill_identity(name = "", guide = "legend", labels = c("myLegend"))

and I got the following:

The legend is not shown in the plot and what I want is the following:

which I plot using Matlab. Could anyone tell me how to do it in R? Thank you so much!!

回答1:

You plot is not showing a legend, because there are no aesthetics mapped to the line. Basically, ggplot sees no reason to add a legend as there's only one line.

A simple way to get a legend is to map the line type to a character string:

ggplot(mtcars, aes(x=mpg, y=wt, lty = 'MyLegend')) + geom_line()

You can have a look at ?scale_linetype for information on how to modify tthat legend.

For example, use + scale_linetype('MyLegendTitle') to change the legend title.