有 我是R.的新人。我想绘制一个这样的图形。
曲线由以下等式创建:
(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)
然后自动绘制所有曲线。我试图使用数据框来制作一组方程,但是失败了。
答案 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)
}