今天在循环导出图⽚时,遇到了⼀个问题:
使⽤R语⾔导出图⽚的代码:
setwd(\"E://R\")jpeg(file=\"A.jpeg\")
print(plot(PEO$X, PEO$Y, pch=PEO$S))dev.off()
但是若是将此代码运⽤到循环之中,则只会出来⼀张图A.jpeg想了好久原因,发现……..命名⽅法不对啊
只有⼀个名字当然不⾏啊于是搜索如何循环命名…
找到了⽼朋友paste()
yourfilename=paste(\"A\jpeg(file=yourfilename)
搞定!
补充:R语⾔ 循环作图
我就废话不多说了,⼤家还是直接看代码吧~
setwd(\"C:\\\\Users\\\\Administrator\\\\Desktop\\\\pic\")# Plot separate ggplot figures in a loop. library(ggplot2)
# Make list of variable names to loop over.
var_list = combn(names(iris)[1:3], 2, simplify=FALSE) # Make plots. plot_list = list() for (i in 1:3) {
p = ggplot(iris, aes_string(x=var_list[[i]][1], y=var_list[[i]][2])) + geom_point(size=3, aes(colour=Species)) plot_list[[i]] = p }
# Save plots to tiff. Makes a separate file for each plot. for (i in 1:3) {
file_name = paste(\"iris_plot_\ tiff(file_name) print(plot_list[[i]]) dev.off() }
# Another option: create pdf where each page is a separate plot. pdf(\"plots.pdf\") for (i in 1:3) {
print(plot_list[[i]]) }
dev.off()
补充:R语⾔-循环产⽣变量名并赋值,应⽤到 ggolot2 循环作图问题的起源来⾃,想要批量出数⼗张组合好的图。
实现过程中,最⼤的问题是如何实现:循环产⽣变量名,并对其将ggplot的⼀长段作图代码传送给该变量名。
最终使⽤assign函数解决了
⾸先产⽣1000个字符串格式的备⽤变量名:
p <- c(paste0('p',1:1000))
接下来,只需写个循环即可。
for (i in 1:1000) {
assign(p[i],ggplot(dat,aes(x=x,y=y))}
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务