绘制R中每个列表列表的元素
Posted
技术标签:
【中文标题】绘制R中每个列表列表的元素【英文标题】:Plotting elements of each list of lists in R 【发布时间】:2022-01-05 07:55:55 【问题描述】:假设我有一个如下列表。请注意,它们没有索引(因此 Plot Elements from List of Lists in Multiple Colors 不起作用)。我想在一个图中以不同的颜色绘制列表列表的每个元素;所有列表列表中的第一个元素用红色绘制,第二个用蓝色绘制,依此类推。该图将包含三个 x 轴值(每个对应一个列表)和 14 行。我希望这是一个线图而不是点。这只是我的数据示例,每个列表中有更多元素,而且列表更长,所以如果您也能提供自动着色方案,我将不胜感激。
这是我的示例数据:
dput(eig_inter_list)
list(structure(c(0.35292487525346, 0.60691801065057, 1, 0.580488938067023,
0.309868800437186, 0.803624552294329, 0.859614844376857, 0.945322316985286,
0.66382386229292, 0.582923451391743, 0.700743501629888, 0.54057650370494,
0.618018253507612, 0.827733889516536), .Dim = c(14L, 1L)), structure(c(0.277569256062068,
0.349586859887733, 0.501330486808658, 0.512673497480961, 0.415383940065017,
0.580991046711227, 0.662789950341437, 0.715112711298967, 0.527336235410471,
0.307662169519342, 1, 0.569881462583403, 0.770921042348471, 0.601883082654194
), .Dim = c(14L, 1L)), structure(c(0.497890982517205, 0.408808327528174,
0.458163926773143, 0.647830131597746, 0.497917404040468, 0.884088378425421,
0.597378982413682, 1, 0.731715482131051, 0.937716641217791, 0.81980698262881,
0.761533227649694, 0.791174439173143, 0.53885600731611), .Dim = c(14L,
1L)))
【问题讨论】:
您想将所有列表绘制在一个图中还是将每个列表绘制在一个单独的图中? 在一个情节中,我已将其添加到问题中,谢谢。 @YacineHajji 【参考方案1】:基于str
ucture,它只是matrix
ces 的list
,只有一个列。一个选项是使用Map
循环list
以及要绘制的相应col
ors 的向量/列表。在打印之前指定par
以将其放在单个页面中
par(mfrow = c(3, 1))
Map(function(x, col) plot(x, type = 'l', color = col),
eig_inter_list, c("red", "blue", "green"))
-输出
如果我们想在单个图中绘制,cbind
matrix
es 在一个具有 3 列的矩阵中并使用matplot
matplot(do.call(cbind, eig_inter_list), type = "l",
col = c('red', 'blue', 'green'), lty = 1, ylab = "value")
-输出
【讨论】:
我为情节添加了描述。我希望所有这些都在一个图中,在 x 轴上,我们将有三个点,每个点对应一个列表。 行,我的意思是 x 轴上的这三个点将针对每个列表中的每个值。 x 轴应该是列表的索引,y 轴应该是列表中的值。 请检查更新 不错的情节。没想到你也有阴谋!以上是关于绘制R中每个列表列表的元素的主要内容,如果未能解决你的问题,请参考以下文章