以编程方式将图层添加到 R 中的 plotly

Programmatically add layers to plotly in R

我正在尝试以编程方式在 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")  
}

在这个例子中,我试图绘制一个高斯混合模型,但是,plotly 的参数在被查看之前不会被评估,所以所有五个层只包含 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)  
}

plotly 有一个求值参数。