当使用基本R图形(使用par(mfrow=c(nr,nc))
)时,我通常会在for循环中生成子图。我正在尝试与plotly
做类似的事情,生成一系列图并将它们保存到列表中,以便稍后传递给subplot
函数。但是,由于我不理解的原因,在循环结束时,列表的所有元素似乎都包含相同的图(最后一个)。如果我在循环中打印列表中的每个绘图(取消注释下面示例中以print
开头的行),那么绘图似乎很好)。我真的不明白发生了什么。有人可以解释这个意外的行为或指出下面我的示例代码的问题吗?
library(plotly)
plotList = list()
plotListNames = c("p1", "p2", "p3")
for (i in 1:3){
x = rnorm(10)
y = rnorm(10)
thisName = plotListNames[i]
plotList[[thisName]] = plot_ly(x=x,y=y, name=thisName)
##print(plotList[[thisName]]
}
sbp = subplot(plotList[["p1"]], plotList[["p2"]], plotList[["p3"]])
print(sbp)
答案 0 :(得分:2)
试试这个:
plotList[[thisName]] = plotly_build(plot_ly(x=x,y=y, name=thisName))