R ggplot是否对统计函数使用动态函数?

R ggplot是否对统计函数使用动态函数?,r,function,ggplot2,stat,R,Function,Ggplot2,Stat,因此,我正在运行一个优化问题,并试图在绘图的每个时间点添加函数。我能够绘制函数,但是我已经存储了变量,看起来r在呈现函数之前不会对函数求值。这很难解释,但我有一个简单的例子来说明这一点 data = data.frame(x = runif(20, -10, 10), y = runif(20, -10,10)) p <- ggplot(data, aes(x = x, y =y)) slope = 0.5 yoff = 1 p <- p + stat_function(fun =

因此,我正在运行一个优化问题,并试图在绘图的每个时间点添加函数。我能够绘制函数,但是我已经存储了变量,看起来r在呈现函数之前不会对函数求值。这很难解释,但我有一个简单的例子来说明这一点

data = data.frame(x = runif(20, -10, 10), y = runif(20, -10,10))
p <- ggplot(data, aes(x = x, y =y))
slope = 0.5
yoff = 1
p <- p + stat_function(fun = function(x) slope*x+yoff)
slope = 1
yoff = -1
p <- p + stat_function(fun = function(x) slope*x+yoff)
p
data=data.frame(x=runif(20,-10,10),y=runif(20,-10,10))

p函数在使用时进行求值,因此在渲染时存在。 您可以重命名参数以具有不同的功能:

p <- ggplot(data, aes(x = x, y =y))
slope1 = 0.5
yoff1 = 1
p <- p + stat_function(fun = function(x) slope1*x+yoff1)
slope2 = 1
yoff2 = -1
p <- p + stat_function(fun = function(x) slope2*x+yoff2)

p函数在使用时进行求值,因此它在渲染时存在。
您可以重命名参数以具有不同的功能:

p <- ggplot(data, aes(x = x, y =y))
slope1 = 0.5
yoff1 = 1
p <- p + stat_function(fun = function(x) slope1*x+yoff1)
slope2 = 1
yoff2 = -1
p <- p + stat_function(fun = function(x) slope2*x+yoff2)

pggplot中的许多参数在实际渲染绘图之前不会进行计算。在这里,我们可以将
slope
yoff
values参数设置为函数,然后通过
args=
参数传入值,该参数在前面进行了计算

library(ggplot2)
data = data.frame(x = runif(20, -10, 10), y = runif(20, -10,10))
p <- ggplot(data, aes(x = x, y =y))
slope = 0.5
yoff = 1
p <- p + stat_function(fun = function(x, slope, yoff) slope*x+yoff, args=list(slope=slope, yoff=yoff))
slope = 1
yoff = -1
p <- p + stat_function(fun = function(x, slope, yoff) slope*x+yoff, args=list(slope=slope, yoff=yoff))
p
库(ggplot2)
data=data.frame(x=runif(20,-10,10),y=runif(20,-10,10))

pggplot中的许多参数在实际渲染绘图之前不会进行计算。在这里,我们可以将
slope
yoff
values参数设置为函数,然后通过
args=
参数传入值,该参数在前面进行了计算

library(ggplot2)
data = data.frame(x = runif(20, -10, 10), y = runif(20, -10,10))
p <- ggplot(data, aes(x = x, y =y))
slope = 0.5
yoff = 1
p <- p + stat_function(fun = function(x, slope, yoff) slope*x+yoff, args=list(slope=slope, yoff=yoff))
slope = 1
yoff = -1
p <- p + stat_function(fun = function(x, slope, yoff) slope*x+yoff, args=list(slope=slope, yoff=yoff))
p
库(ggplot2)
data=data.frame(x=runif(20,-10,10),y=runif(20,-10,10))

p如果您有很多功能,请列出以下功能:

make_fun <- function(slope,yoff) {slope; yoff; function(x) x*slope + yoff}
> l <- mapply(FUN = make_fun,slope = 1:2,yoff = 3:4)
> l[[1]](1)
[1] 4
> l[[2]](1)
[1] 6
make_fun l l[[1]](1)
[1] 4
>l[[2]](1)
[1] 6

如果有很多功能,请列出以下功能:

make_fun <- function(slope,yoff) {slope; yoff; function(x) x*slope + yoff}
> l <- mapply(FUN = make_fun,slope = 1:2,yoff = 3:4)
> l[[1]](1)
[1] 4
> l[[2]](1)
[1] 6
make_fun l l[[1]](1)
[1] 4
>l[[2]](1)
[1] 6