生成R绘图图表并将其传递给子图

时间:2016-06-30 18:05:41

标签: r plotly

当使用基本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)

1 个答案:

答案 0 :(得分:2)

试试这个:

plotList[[thisName]] =  plotly_build(plot_ly(x=x,y=y, name=thisName))