【发布时间】:2017-12-09 22:44:28
【问题描述】:
我有一个名为stock 的R 函数(如下)。我想知道是否有可能以任何方式将函数的每次运行的结果(即plot())绘制(即添加)在上一次函数运行的绘图之上? (代码下方的图片可能会显示这一点)
stock = function(m, s){
loop = length(s)
I = matrix(NA, loop, 2)
for(i in 1:loop){
I[i,] = quantile(rbeta(1e2, m, s[i]), c(.025, .975))
}
plot(rep(1:loop, 2), I[, 1:2], ty = "n", ylim = 0:1, xlim = c(1, loop))
segments(1:loop, I[, 1], 1:loop, I[, 2])
}
# Example of use:
stock(m = 2, s = c(1, 10, 15, 20, 25, 30))
stock(m = 50, s = c(1, 10, 15, 20, 25, 30)) #The result of this run be plotted on top of previous run above
【问题讨论】:
-
实际上,第一次和第二次运行的图会相互重叠。您会将它们视为一行,而不是两行。
-
是的,我明白了。但是第二个图的 y 值不高于第一个图。将它们都绘制出来,您会发现,如果将它们一起绘制在一个图中,它将看起来像一条线,而不是一条线在另一条线之上。是否要随意将第二个上移?
标签: r function for-loop plot vectorization