r - 我试图在 ggplot 中循环将结果保存到列表中
问题描述
我正在尝试循环 ggplot 以将它们保存到列表中。我遇到了一个问题,因为所有图表都带有最后一个变量的数据。你能帮我吗?我想将图形存储在列表中
这是我的数据的样子:
head(rev_regions1m)
World US Eurozone Emerging.Markets Asia.Pacific.Ex.Japon date
1 -0.015025440 -0.004314109 -0.0074216799 -0.016600603 -0.020172773 2018-12-31
2 -0.015025440 -0.004314109 -0.0074216799 -0.016600603 -0.020172773 2019-01-01
3 -0.015025440 -0.004314109 -0.0074216799 -0.016600603 -0.020172773 2019-01-02
4 0.016668433 0.001509360 -0.0007849854 -0.003445408 -0.007896815 2019-01-03
5 0.016668433 0.001509360 -0.0007849854 -0.003445408 -0.007896815 2019-01-04
6 -0.009066019 -0.005461343 -0.0051865009 -0.013999017 -0.016930263 2019-01-07
>
这是我的代码:
plot<-list()
for (i in 1:(length(rev_regions1m)-1)) {
plot[[i]]<-ggplot(rev_regions1m)+
geom_line((aes(x=date, y= rev_regions1m[,i])),size=1.4, color="midnightblue", inherit.aes = FALSE)+
labs(x="Date", y="Value", title = "Revisions 1M", subtitle = names_regions[i])+
theme_wsj()+
scale_colour_wsj("colors6")
}
任何人都可以帮助我,拜托!
解决方案
这是生成 ggplot 对象列表的一种解决方案。工作流程如下:
拆分数据以获得足以制作绘图的数据框列表
创建您的自定义绘图功能
用于
lapply()
循环数据框列表并创建 ggplot 对象列表。
library(ggplot2) # using base R dataset iris # Lets say you want to make a plot for each specie and save it into a list # split your initial data into pieces that will be used to make plots iris_list = split(iris, iris$Species) # create a custom function that take as input a piece of your data plot_fun = function(irisdf) { ggplot(irisdf, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point() } # use lapply() on the list of pieces to get a list of ggplot objects plots_list = lapply(iris_list, FUN = plot_fun)
推荐阅读
- python - 使用 Opencv 或 Python 中的任何其他库的 HDMI-USB 视频采集卡流
- google-chrome-devtools - Chrome - 检查设备 - 选择元素不起作用
- c# - C#异常处理,暂时停止循环
- python - 嘿,我想用 python 向多个人发送电子邮件
- sql - 如果标识符相同,则通过列复制值
- python - 如何在 matplotlib 中获取可变颜色条?
- r - 解释异常检测 R 值
- flutter - Flutter, Dart 将句子每1个字符拆分为2个字符大小,用于flutter自定义tts项目
- excel - 选择案例前一个月
- python-3.x - 确定土地中黄色像素的数量?