我有一个数据帧列表,如下所示。我想绘制每个数据框的条形图,在x轴上绘制范围,在y轴上绘制wt0。当我尝试在循环下运行时,它将绘制最后一个数据帧的图形。
li
[[1]]
varName Range wt0 wt1
1 var 1 (-Inf,-6] 858 7788
2 var 1 (-6,0.5] 1698 85194
3 var 1 (0.5,1.5] 2040 15240
4 var 1 (1.5,2.5] 1928 7815
5 var 1 (2.5,3.5] 1900 5228
[[2]]
varName Range wt0 wt1
1 var 2 (-Inf,-6] 858 7788
2 var 2 (-6,-5] 3 6
3 var 2 (-5,-4] 57 196
4 var 2 (-4,-3] 5 162
5 var 2 (-3,-2] 4008 18285
[[3]]
varName Range wt0 wt1
1 var 3 (-Inf,-6] 858 7788
2 var 3 (-6,-2] 3205 11246
3 var 3 (-2,-1] 2968 94972
4 var 3 (-1,12.5] 5741 17884
5 var 3 (12.5,Inf] 11267 8167
[[4]]
varName Range wt0 wt1
1 var 4 (-Inf,-6] 858 7788
2 var 4 (-6,-2] 3487 2387
3 var 4 (-2,-1] 5049 3361
4 var 4 (-1,1.5] 3607 4081
5 var 4 (1.5,4.5] 2043 3699
for (i in 1:4){
c <- li[[i]]
p<- ggplot(c) +
geom_bar(aes(x=c$Range, y=c$wt0), stat = "identity")
}
答案 0 :(得分:0)
在@NelsonGon的第一行中,您可以映射到数据框列表上:
myPlots <- purrr::map(li, ~ggplot(.x, aes(x = Range, y = wt0)) + geom_bar(stat = "identity"))
这将为您提供ggplot对象的列表。您可以按索引print(myPlots[[1]])
打印它们,也可以迭代所有它们:
purrr::walk(myPlots, print)
如果您在RStudio中,它可能仅显示最后一个图,但是在查看器窗格的左上角,有一些箭头可用于浏览打印的图。