我试图以编程的方式在plotly中添加层,但似乎无法绕过它的懒惰评估。示例:
p <- plot_ly()
for(kk in 1:5) {
tmp <- cbind(rnorm(1) + 0.05*rnorm(15),rnorm(1) + 0.05*rnorm(15))
p %<>% add_trace(x = tmp[,1], y = tmp[,2], type = "scatter", mode = "markers")
}
在这个例子中,我试图绘制一个高斯混合模型,然而,要绘制的参数在查看之前不会进行评估,所以所有五层都只包含tmp的最终值。plotly_build命令应该是强制求值,但我找不到它的用法示例,显然我做错了。
p <- plot_ly()
for(kk in 1:5) {
tmp <- cbind(rnorm(1) + 0.05*rnorm(15),rnorm(1) + 0.05*rnorm(15))
p %<>% add_trace(x = tmp[,1], y = tmp[,2], type = "scatter", mode = "markers")
plotly_build(p)
}
仍然给出了相同的结果。我做错了什么?
p <- plot_ly()
for(kk in 1:5) {
tmp <- cbind(rnorm(1) + 0.05*rnorm(15),rnorm(1) + 0.05*rnorm(15))
p %<>% add_trace(x = tmp[,1], y = tmp[,2], type = "scatter", mode = "markers", evaluate = TRUE)
}
这里有一个计算论证。