R语言 实现在循环中输出图片的操作
今天在循环导出图片时,遇到了一个问题:
使用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",i,".jpeg",sep="") 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_", i, ".tiff", sep="") 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)) }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
R语言-如何给直方图加标签
看代码吧~ hist(data$MEDV,col="grey")#可以看到目标数据的总体分布 legend(35,170,c("min:5","median:21.2","mean:22.51","max:50"),fill=c("lightblue","wheat")) 补充:R语言作图--histogram(直方图) 最近小仙同学很是烦恼,本以为自己已经掌握了gg
-
基于R语言for循环的替换方案
R语言中,for循环运行比较慢 for(i in 1:1000){ print(i^2) } 补充:R语言:for循环使用小结 基本结构展示: vals =c(5,6,7) for(v in vals){ print(v) } #即把大括号里的内容对vals里的每一个值都循环run一遍 实例展示: 1. paste() 命令是把几个字符连接起来 如paste("A","B","C",sep=" ")得到的就是"A B
-
R语言中quantile()函数的用法说明
在R语言中取百分位比用quantile()函数,下面举几个简单的示例: 1.求某个百分位比 > data <- c(1,2,3,4,5,6,7,8,9,10) > quantile(data,0.5) 50% 5.5 > quantile(data,c(0.25,0.75)) 25% 75% 3.25 7.75 2.产生一个序列百分位比值 > quantile(data,seq(0.1,1,0.1)) 10% 20% 30% 40% 50% 60% 70% 80% 90% 1
-
R语言—自定义函数求置信区间的操作
看代码吧~ #求单正态均值mu的置信区间 #参数依次为置信水平alpha,正态样本x,已知总体方差(默认为未知) mu <- function(alpha,x,sigma=NA){ n <- length(x) meanx <- mean(x) if(is.na(sigma)){ t1 <- qt(1-alpha/2,n-1) t2 <- qt(1-alpha,n-1) mu11 <- meanx - t1*sqrt(sum((x-meanx)^2)/(n-1))/sq
-
R语言-在一张图上显示多条线的实现
查询百度之后,发现在R上一次显示多张图的函数很多,比如layout()或者分屏函数,但是这些都不是我想要的结果. 之后,发现了line()函数可以保留原来图片继续作图,在括号中填入所需画图的部分即可(我是将一个矩阵作图). 先运行plot()函数,再注释掉plot()函数运行line()函数即可. 效果如下: 补充:R语言:在同一张图作不同曲线 R语言将两条曲线作在同一张图的方法是 library(ggplot2) year<-c(1993,1998,2003,2008) Res<-c(0.0
-
R语言-如何实现卡方检验
卡方检验 在数据统计中,卡方检验是一种很重要的方法. 通常卡方检验的应用主要为: 1. 卡方拟合优度检验 2.卡方独立性检验 本文主要通过使用自己编程的方法实现相关检验. 卡方拟合优度检验 理论: 1.我们先做出0假设:H0:总体服从假定的理论分布 2.我们再构造一个统计量: 3.当n充分大时 4.我们得到该拒绝域 代码 #Chi_square Goodness Of Fit Test #函数说明: #n为所得样本数据:p为理论概率 #alpha为置信水平,df为自由度 cgoft <- fun
-
R语言-绘制双坐标图直方图与折线的结合方式
看代码吧~ par(mar = c(5, 5, 3, 4)+0.1) #似乎是设置图片位置 bar<-barplot(gu[1:22,6],xlim=c(0.5,26),ylim=c(0,200000),ylab="交易量", col="blue",col.axis="blue",col.lab="blue") mtext(c(1:22),side=1,line=1,at=bar,cex=0.8,col="bl
-
R语言中的fivenum与quantile()函数算法详解
fivenum()函数: 返回五个数据:最小值.下四分位数数.中位数.上四分位数.最大值 对于奇数个数字=5,fivenum()先排序,依次返回最小值.下四分位数.中位数.上四分位数.最大值 > fivenum(c(1,12,40,23,13)) [1] 1 12 13 23 40 对于奇数个数字>5,fivenum()先排序,我们可以求取最小值,最大值,中位数.在排序中,最小值与中位数中间,若为奇数,取其中位数为下四分位数,若为偶数,取最中间两个数的平均值为下四分位数:在排序中,中位数与最大
-
R语言 实现在循环中输出图片的操作
今天在循环导出图片时,遇到了一个问题: 使用R语言导出图片的代码: setwd("E://R") jpeg(file="A.jpeg") print(plot(PEO$X, PEO$Y, pch=PEO$S)) dev.off() 但是若是将此代码运用到循环之中,则只会出来一张图A.jpeg 想了好久原因,发现--..!!!! 命名方法不对啊!!! 只有一个名字!!!当然不行啊!!! 于是搜索如何循环命名- 找到了老朋友paste() yourfilename=pa
-
R语言数据的输入和输出操作
数据的载入 R本身已经提供了超过50个数据集,而在众多功能包中,默认的数据集被存放在datasets程序包中,通过函数data()k可以查看系统提供所有的数据包,同时可以通过函数library()加载程序包中的数据. 矩阵型数据最常用的读取方式是read.table()具体的调用格式是() read.table(file, header = FALSE, sep = "", quote = "\"'",dec = ".", numera
-
R语言与格式,日期格式,格式转化的操作
R语言的基础包中提供了两种类型的时间数据,一类是Date日期数据,它不包括时间和时区信息,另一类是POSIXct/POSIXlt类型数据,其中包括了日期.时间和时区信息. 基本总结如下: 日期data,存储的是天: 时间POSIXct 存储的是秒,POSIXlt 打散,年月日不同: 日期-时间=不可运算. 一般来讲,R语言中建立时序数据是通过字符型转化而来,但由于时序数据形式多样,而且R中存贮格式也是五花八门,例如Date/ts/xts/zoo/tis/fts等等.lubridate包(后续有介
-
R语言-如何将循环所得的矩阵组成一个矩阵
在矩阵合并中,常见的方法有cbind()和rbind() 其中,前者为按列合并,后者为按行合并. 但是这两个函数有个缺点,就是不能应用到循环之中.例如: A<-matrix(1:12,nrow = 4,byrow = T) B<-matrix(1:8,nrow = 4,byrow = T) C<-cbind(A,B) 得到的矩阵C为[按列合并两者行数必须相同]: 但是如果将这个方法应用在循环中,就无法取得预期效果: A<-matrix(1:12,nrow = 4,byrow = T
-
R语言-如何截取变量中指定位置的若干个字符
例如,某数据库如下,需要把第二个变量里面的ID号码(格式为T-20-252-02)提取出来作为一个新变量. 命令如下: b=readWorksheetFromFile(temp[11],sheet=1) 读入excel数据,命名为数据库b,这里temp[11]是读入temp中第11个文件名对应的文件 attach(b) attach数据库,之后即可直接用变量名file, 否则要用b$file b$id=substr(File,regexpr("T",File),regexpr(&quo
-
R语言之xlsx包读写Excel数据的操作
感谢Adrian A. Drǎgulescu发布的xlsx包 xlsx包提供了必要的工具来与Excel 2007进行交互.用户可以阅读和编写xlsx,并可以通过设置数据格式.字体.颜色和边框来控制电子表格的外观.设置打印区域,缩放控制,创建分割和冻结面板,添加页眉和页脚.包使用Apache POI项目中的java库.本篇主要分享利用xlsx工具包在读写xlsx过程中所碰到的问题及解决办法. 工具准备 强烈建议大家使用RStudio这个IDE,它是以今为止对R语言最友好的一个IDE之一,而且使用很
-
R语言 实现手动设置xy轴刻度的操作
在R中,plot函数作图时会自动给出xy轴的刻度标度,如下图: 有时我们需要自己定义xy轴的刻度,这时我们可以用axis中的at和labels参数来更改. 首先,我们先令plot不要画出xy轴的标度 然后,用axis函数设置xy轴的刻度 这样xy轴的刻度就完全按照我们自己的意愿显示了,也可以设置at参数不是均匀的,总之,用这两个参数就可以完全自己控制xy轴的刻度显示了 补充:R语言自定义坐标轴示例 我就废话不多说了,大家还是直接看代码吧~ x <- c(1:10) y <- x z <-
-
R语言利用caret包比较ROC曲线的操作
说明 我们之前探讨了多种算法,每种算法都有优缺点,因而当我们针对具体问题去判断选择那种算法时,必须对不同的预测模型进行重做评估. 为了简化这个过程,我们使用caret包来生成并比较不同的模型与性能. 操作 加载对应的包与将训练控制算法设置为10折交叉验证,重复次数为3: library(ROCR) library(e1071) library("pROC") library(caret) library("pROC") control = trainControl(
-
R语言之左连接的三种实现操作
数据处理中经常遇到表连接问题,本次介绍R语言中三种左连接方法,这三种是等价的,不过会有时间快慢问题,斟酌使用. 法一: > data0 <- merge(a,c,all.x=TRUE,by='CELLPHONE') 法二: > data1 <- sqldf('select a.*,b.* from a left join c on a.CELLPHONE=c.CELLPHONE') 法三: > data2 <- c[a,on='CELLPHONE'] 注意:第三种方法的
-
R语言变量重编码、重命名的操作
1.变量重编码 重编码涉及根据同一个变量和/或其他变量的现有值创建新值的过程,如将符合某个条件的值重新赋值等,这里主要介绍两种常见的方法: #第一种方法 per <- data.frame(name = c("张三","李四","王五","赵六"), age = c(23,45,34,1000)) per per$age[per$age == 1000] <- NA #设置缺失值 per$age1[per$age
随机推荐
- node实现定时发送邮件的示例代码
- JavaScript用JQuery呼叫Server端方法示例代码
- DDNS 的工作原理及其在 Linux 上的实现
- iOS在Block中修改外部变量值的实现代码
- js读写json文件实例代码
- C#自定义函数NetxtString生成随机字符串
- python复制与引用用法分析
- PHP网页抓取之抓取百度贴吧邮箱数据代码分享
- jsp 复选框使用方法
- Android仿新浪微博、QQ空间等帖子显示(2)
- jsp测试函数的运行速度方法
- MSI之制作免输序列号安装包的方法
- DROP TABLE在不同数据库中的写法整理
- Android数据持久化之读写SD卡中内容的方法详解
- Android TimePicker 直接输入的问题解决方案
- php函数之子字符串替换 str_replace
- JavaWeb文件上传与下载功能解析
- java右下角弹窗示例分享
- 深入浅析python继承问题
- Android 监听屏幕是否锁屏的实例代码