如何解决如何基于一个因子从1个数据集中迭代构建和导出多个图形
说我有一个数据文件(WQ_data_forMultipleStations.csv),其中包含三个变量:StationName
,Time_hr
和DO_mgL
。该文件包含50个站(站1,站2,站3 ...站50)的数据。
我想创建和导出50个单独的图,每个工作站一个图,每个图作为单独的图像文件导出。
每个图形都将具有相同的格式:x轴上为Time_hr
,y轴上为DO_mgL
,图形名称为StationName
,并以JPG格式导出,并带有文件名StationName
。jpg。
我是R的新手,我已经想出要使用构面制作一个包含50个子图的巨型图(请参见下面的代码),但是我非常感谢帮助将每个子图制作成单独的图,然后导出50图形为50个单独的且命名明确的图像文件。谢谢!
library ("ggplot2")
WQ_byStation <- read.csv("WQ_data_forMultipleStations.csv")
WQ_byStation_plots <- ggplot(WQ_byStation,aes(x = Time_hr,y = DO_mgL)) +
geom_point() +
geom_line() +
facet_wrap(~ StationName)
ggsave(filename="WQ_byStation_plots.jpg",plot=WQ_byStation_plots)
解决方法
这是一个如何使用mtcars
数据集的for循环完成此操作的小例子
for(g in unique(mtcars$gear)) {
f <- filter(mtcars,gear == g)
p <- ggplot(f,aes(disp,hp)) +
geom_point()
ggsave(paste0('plot_',g,'.jpg'),p)
}
您的情况就是这样
for(s in unique(WQ_byStation$StationName)){
f <- filter(WQ_byStation,StationName == s)
p <- ggplot(f,aes(x = Time_hr,y = DO_mgL)) +
geom_point() +
geom_line() +
ggtitle(s)
ggsave(paste0(s,p)
}
请注意,您可以通过在ggsave
中指定路径来保存到文件夹。例如。 my_folder/WQ_bySation...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。