Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ggplot2 add a legend for several stat_functions

Tags:

r

legend

ggplot2

I see a lot of questions regarding how to customize legends, but I can't even get a legend to customize. I would like to have a legend explaining that the black line is quadratic and that the green line is cubic.

library(ggplot2)

myfun1 <- function(x) x^2
myfun2 <- function(x) x^3

myplot <- ggplot(data = data.frame(x = 1:5, y= 1:5), aes(x=x, y=y)) +
    stat_function(fun = myfun1, color="green") +
    stat_function(fun = myfun2, color="black")
like image 506
Xu Wang Avatar asked Apr 10 '12 08:04

Xu Wang


1 Answers

Try this:

ggplot(NULL, aes(x=x, colour = g)) +
  stat_function(data = data.frame(x = 1:5, g = factor(1)), fun = myfun1) +
  stat_function(data = data.frame(x = 1:5, g = factor(2)), fun = myfun2) +
  scale_colour_manual(values = c("red", "green"), labels = c("quadratic", "cubic"))

enter image description here

like image 102
kohske Avatar answered Oct 18 '22 03:10

kohske