覆盖ggplot2中的许多曲线

时间:2013-08-28 03:25:08

标签: r ggplot2

我不知道如何在ggplot2的curve()函数中复制add = TRUE参数?

假设我有这个情节

     testfn<-function(x,a){
        sin(x-a)
    }

    for(i in 1:10){
        curve(testfn(x,i),add=TRUE,xlim=c(-5,5))
    }

如何在ggplot2中执行此操作而无需手动添加10 + stat_function()?

由于

1 个答案:

答案 0 :(得分:4)

使用stat_function

创建对lapply的来电列表

例如

 library(ggplot2)
# the base plot (with x limits)
xlim <- c(-5,5)
baseplot <- ggplot(data.frame(x = xlim), aes(x=x))

# the function
testfn <- function(x,a){sin(x-a)}
# a list of 10 calls (a = 1,...10)
list_fn <- lapply(seq_len(10), function(a){
  stat_function(fun = testfn, args = list(a=a))
})
# the plot
baseplot + list_fn

enter image description here