下午好!
我具有变量n的以下功能:
P(n) = 1-(1-p)^n
我想在同一图中绘制具有几个p值的一个三维函数:
p=seq(0 , 1 , 0.1 )
所以我尝试了p = 0.1和p = 0.9:
p=0.1
n <- seq(0, 100, 8) ; y <- 1-(1-p)^n
plot(n , y ,pch= 21,type = "o", col = "red", xlab = "n-values", ylab = "P(n) values ", main = "P(n)= 1-(1-p)^n ")
p=0.9
lines(n , 1-(1-p)^n , type="o", pch=16 , col="blue")
legend(60 , 0.4, c("p=0.1","p=0.9"), cex=0.7, col=c("red", "blue"),pch=c(21, 16))
这给出了:
问题:
我正在寻找一种优雅的方法来绘制此函数的所有值
在同一图中p = seq(0,1,0.1)。我想删除
外推效果(我想删除pch
符号
全部,该图包含了具有不同颜色的曲线,并且没有外推线段的效果。)
我希望我的问题很清楚。
谢谢您的帮助!
答案 0 :(得分:2)
您可以使用outer
和matplot
,更多x值和合适的配色方案:
n <- seq(0, 100, length.out=200)
p <- seq(0.1, 1, 0.1)
f <- function(n, p) 1-(1-p)^n
M <- outer(n, p, "f")
col <- hcl.colors(length(p), "Spectral")
matplot(n, M, type = "l", col = col, lty = 1)
legend("bottomright", legend = p, col = col, lty = 1)
答案 1 :(得分:2)
另一种简单的方法是替换
lines(n , 1-(1-p)^n , type="o", pch=16 , col="blue")
与
p = seq(0,1,0.1)
invisible(lapply(p, function(i) {lines(n, 1-(1-i)^n, type="o", col=i*10)}))