请参见下面的玩具示例,该示例再现了该错误。
循环内的打印语句按预期工作,并生成了3个不同的图表。
但是,在循环后运行“ lst”时,我希望呈现相同的3个不同的图表,但是我只得到3个相同(第三个)图表的副本。
(“ get()”在直接使用动态选择的绘图但将其放入列表中时会起作用。)
library(plotly)
lst <- list()
cnt <- 1
for(bar in c("Sepal.Width", "Petal.Length", "Petal.Width")){
lst[[cnt]] <- plot_ly(data = iris,
x = ~Sepal.Length,
y = ~get(bar),
type = "scatter",
mode = "markers")
print(lst[[cnt]] %>% layout(title = paste(bar, "printed in loop")))
cnt <- cnt + 1
}
lst
将“〜get(bar)”更改为以下即可解决。我将不胜感激。
y = as.formula(paste0("~", bar))
答案 0 :(得分:1)
在使用setValue()
将其传递到列表之前,您需要渲染可绘制对象:
a.replace(/\\n/g,"\\\\n")