【问题标题】:Plotting a list of lists in R在 R 中绘制列表列表
【发布时间】:2021-04-16 15:12:07
【问题描述】:

我的数据包含在列表列表中。例如

> head(balance)
[[1]]
 [1]  99 101 102 103 102 100 104 103 101  97 105 104 106 107 106 104 100  92  76  44

[[2]]
 [1]  99 101 100 102 103 104 103 101  97  89 105 106 107 106 108 109 108 106 102  94  78
[22] 110

[[3]]
 [1]  99  97 101 102 103 102 104 105 106 107 108 109 108 106 110

[[4]]
 [1] 101 102 101 103 104 105 106 107 108 107 105 109 110

[[5]]
 [1]  99 101 100 102 101  99 103 104 105 104 106 107 106 104 108 109 110

...

我希望这些 balance 值构成图表的 y 轴,并希望它们的索引构成它们的 x 值。我希望每个子列表在图表上都是它自己的线。

使用函数调用

plot(unlist(betIndex), unlist(balance), type = 'l')

我能够获得以下情节。看起来线条在子列表之间连接,这不是我想要的。我希望每个子列表都是它自己的行。我该怎么办?

作为参考,betIndex 只是值的索引。我做它是为了绘图。

【问题讨论】:

  • 我们并不想输入您的数据。请通过运行dput(head(balance)) 并将结果粘贴到您的问题中来提供您的示例。
  • @G5W list(c(99, 101, 102, 103, 102, 100, 104, 103, 101, 97, 105, 104, 106, 107, 106, 104, 100, 92, 76, 44), c(99, 101, 100, 102, 103, 104, 103, 101, 97, 89, 105, 106, 107, 106, 108, 109, 108, 106, 102, 94, 78, 110 ), c(99, 97, 101, 102, 103, 102, 104, 105, 106, 107, 108, 109, 108, 106, 110), c(101, 102, 101, 103, 104, 105, 106 , 107, 108, 107, 105, 109, 110), c(99, 101, 100, 102, 101, 99, 103, 104, 105, 104, 106, 107, 106, 104, 108, 109, 110) , c(101, 102, 101, 103, 104, 103, 101, 105, 106, 105, 103, 99, 91, 75, 107, 108, 109, 110)))

标签: r list plot data-structures graph


【解决方案1】:

使用您提供的数据,您可以制作一个具有足够范围的空白图以包含所有线条,然后使用lines 绘制每条线条。我对每条线进行了不同的着色以使它们分开。

xmax = max(unlist(lapply(balance, length)))
ymin = min(unlist(balance))
ymax = max(unlist(balance))

plot(NULL, xlim=c(0,xmax), ylim=c(ymin, ymax), ylab="")
for(i in seq_along(balance)) {
    lines(balance[[i]], col=i) }

【讨论】:

    猜你喜欢
    • 2022-01-05
    • 2021-12-27
    • 2018-08-01
    • 2017-04-22
    • 2016-03-10
    • 1970-01-01
    • 2023-03-21
    • 2011-11-04
    • 2020-10-16
    相关资源
    最近更新 更多