在r中绘制多个相似的方程式

时间:2016-03-02 16:48:45

标签: r

有 我是R.的新人。我想绘制一个这样的图形。 enter image description here

曲线由以下等式创建:

(log(0.4)-(0.37273*log(x)-1.79389))/0.17941 
(log(0.5)-(0.37273*log(x)-1.79389))/0.17941
(log(0.6)-(0.37273*log(x)-1.79389))/0.17941 

等。方程式相似,唯一的区别是第一个log(XXX)。我已经通过对每个方程重复plot()来手动绘制图形。 但我认为必须有一种方法来分配一个简单的变量,如

x<-c(0.4,0.5,0.6,0.7)

然后自动绘制所有曲线。我试图使用数据框来制作一组方程,但是失败了。

1 个答案:

答案 0 :(得分:1)

您可以创建函数生成函数,然后循环使用感兴趣的值。例如

# takes a value, returns a function
logfn <- function(b) {
    function(x) (log(b)-(0.37273*log(x)-1.79389))/0.17941
 }

x <- c(0.4,0.5,0.6,0.7)
# empty plot
plot(0,0,type="n", ylim=c(-5,5), xlim=c(1,8), xlab="Lenght", ylab="Z-score")
# add plots for questions with `curve()`
for(v in x) {
    curve(logfn(v)(x),add=T)
}