2016-03-02 15 views
0

there 我是R上的新手。我想繪製一個這樣的圖。 enter image description here在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 

等的方程相似,唯一的區別是所述第一日誌(XXX)。我已經通過重複每個方程的plot()手動繪製圖形。 但我認爲必須有公正分配像

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

一個簡單的變量,然後自動繪製的所有曲線的方法。我試圖用數據框來製作一組方程,但是失敗了。

回答

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) 
}