gpt4 book ai didi

r - 在 R : how do I draw many curves using parameter values in a data table? 中绘制函数

转载 作者:行者123 更新时间:2023-12-02 01:35:43 25 4
gpt4 key购买 nike

我是 R 的新手。我有一个带有 4 个参数(c、w、pl、pr)的函数。

curve(1-(pl+(0.5*(pr-pl))*(1+tanh(2*(x-c)/w))),xlim=c(-27,50),ylim=c(0,1),lwd=3,col=2, add=T)

我可以通过手动为每个参数指定值来绘制该函数。

c = 4
w = 6
pl = 0
pr = 1

最终,我会想要绘制数千条曲线,所以我希望能够告诉 R 参数估计值在表格中。每行是一条曲线的数据

hzdata
pl pr w c
1 1 0 3 0
2 1 0 4 0
3 1 0 5 0
4 1 0 6 0
5 1 0 7 0
6 1 0 8 0
7 1 0 9 0
8 1 0 10 0

我如何告诉 R 我想一次在同一张图上绘制所有这些曲线?提前致谢!!

最佳答案

这是一种使用 quote 创建可与公式和变量数据框一起使用的通用函数的方法(列名需要与 formla 中使用的参数匹配)评估

## Your formula, changed add=add and col=col to allow to vary
form <- quote(
curve(1-(pl+(0.5*(pr-pl))*(1+tanh(2*(x-c)/w))),xlim=c(-27,50),ylim=c(0,1),lwd=3,col=col,add=add)
)

plotFun <- function(params, form, colors) {
eval(form, as.list(c(params[1,], col=colors[1], add=F))) # plot the first
for (i in 2:nrow(params)) # plot the rest, adding to the first
eval(form, as.list(c(params[i,], col=colors[i], add=T)))
}

colors <- colorRampPalette(c("red", "yellow"))(nrow(hzdata))
plotFun(hzdata, form, colors=colors)

enter image description here

关于r - 在 R : how do I draw many curves using parameter values in a data table? 中绘制函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31325557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com