R软件作图命令汇总
- 格式:doc
- 大小:55.00 KB
- 文档页数:15
R语⾔低级绘图函数-rectrect 函数⽤来在⼀张图上添加矩形,只需要指定左下⾓和右上⾓的坐标的位置,就可以画出⼀个矩形基本⽤法:plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n")rect(xleft = 1, ybottom = 1, xright = 5, ytop = 5)效果图如下:xleft, ybottom, xright, ytop ⽀持⼀次设置多个值,同时创建多个矩形,⽤法如下:plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n")rect(xleft = c(1, 2), ybottom = c(1, 2), xright = c(5, 4), ytop = c(5, 4))效果图如下:参数设置:border : 设置矩形边框的颜⾊,默认为"black",⽀持为多个矩形设置不同的值代码⽰例:plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n")rect(xleft = c(1, 2), ybottom = c(1, 2), xright = c(5, 4), ytop = c(5, 4), border = c("red", "blue"))效果图如下:col : 设置矩形的填充⾊,默认为NULL, 表⽰⽆填充⾊,,⽀持为多个矩形设置不同的值plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n")rect(xleft = c(1, 2), ybottom = c(1, 2), xright = c(5, 4), ytop = c(5, 4), col = c("pink", "green"))效果图如下:density 和 angle : 搭配使⽤,设置⽤线条填充矩形,angle 设置线条的⾓度,默认为45, density 设置填充线条的密度,数值越⼤越密集代码⽰例:par(mfrow = c(1,3))plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n", main = "density = 1")rect(xleft = 1, ybottom = 1, xright = 5, ytop = 5, angle = 45, density = 1)plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n", main = "density = 3")rect(xleft = 1, ybottom = 1, xright = 5, ytop = 5, angle = 45, density = 2)plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n", main = "density = 4")rect(xleft = 1, ybottom = 1, xright = 5, ytop = 5, angle = 45, density = 3)效果图如下:lwd: 设置矩形所有线条的宽度代码⽰例:plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n")rect(xleft = 1, ybottom = 1, xright = 5, ytop = 5, angle = 45, density = 2, lwd = 3)效果图如下:lty: 设置矩形所有线条的类型代码⽰例:plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n")rect(xleft = 1, ybottom = 1, xright = 5, ytop = 5, angle = 45, density = 2, lwd = 2, lty = 3)效果图如下:。
R语⾔常⽤语法总结## 1. 数据输⼊ ##a$b # 数据框中的变量a = 15 # 赋值a <- 15 # 赋值a = c(1,2,3,4,5) # 数组(向量)b = a[1] # 数组下标,从1开始b = a[1:5] # ⼦数组b = a[-2] # ⼦数组:扣除第2个的⼦数组b = a[c(1,3)] # ⼦数组:访问第1,3个元素b = c(a0,a1,a2) # 连接多个数组a = rep(c(1,2,3,4),each=8) # ⽣成重复数列,⽀持每个重复和整个重复a = seq(from=1,to=4,by=1) # ⽣成等差数列b = cbind(a0,a1,a2,a3) # 按列合并,⽣成⼆维数组b = a[,1] # 取第1列b = a[1:4,1]b = a[,c(1,3,4)]a = vector(length=8) # ⽣成向量a = matrix(1:20, nrow=8,ncol=4) # ⽣成矩阵colnames(a) = c("A","B","C","D") # 列名称。
!! 函数作为左值b = as.matrix(cbind(a1,a2,a3)) # 利⽤cbind直接⽣成矩阵b = data.frame(b1 = a1,b2 = a2) # ⽣成数据框b = list(c(1,2,3),c("a","b","c","d"),matrix(nrow=2,ncol=2)) # ⽣成散列b = a$c == 1 # ⽣成⼀个⽤于筛选的向量 !!较难理解d = a[b,0] # ⽣成符合条件的⼦集d = a[a$c == 1,]b = order(a$c) # ⽣成⼀个⽤于排序的向量 !!较难理解a[b,] # 排序结果b = merge(a1,a2,by = "Sample",all = "TRUE") # join两个数据框a$fb = factor(a$b) # 因⼦化tapply(X=a$b,INDEX=a$c,FUN=mean) # 对所有⼦集作函数运算sapply(a,FUN=mean) # 对所有列作函数运算,输出向量lapply(a,FUN=mean) # 对所有列作函数运算,输出列表summary(a) # 计算所有列的基本统计信息table(a$b) # 计算列联表table(a$b,a$c)paste("a","b",sep=",") # 连接字符串##2. 载⼊和输出数据 ##b = read.table(file="C:/data.txt",header=TRUE,dec=".") # 读取CSV数据library(RODBC) # 载⼊ODBC⼯具odbcConnect("MyDb.mdb") # 连接ODBC数据库b = sqlFetch(channel,"MyTable") # 取表write.table(a,file="temp.txt",sep=" ",quote = FALSE, append=FALSE,na="NA") # 输出## 3. 绘图 ##plot(x=a$b,y=a$c,xlab="X",ylab="Y",main="Title",xlim=c(0,10),ylim=c(0,100),pch=1,col=2,cex=1.5) # 散点图,参数多⽀持向量lines() # 曲线jpeg(file="any.jpg") # 打开⼀个jpg⽂件dev.off() # 关闭图⽚⽂件## 4. 语法 ##for (i in 1:10) {do sth...} # for循环a = function(a,b="n") { # 构造函数do sht...}## A. 函数 ### 运算 #colSums() # 按列求和max()median() # 中位数min()paste() # 连接字符串rowSums() # 按⾏求和solve() # 矩阵求拟sqrt() #sum() # na.rm=TRUE 忽略NA值t() # 矩阵转置# 数据定义 #attach() # 添加数据框为路径as.matrix() # 作为矩阵as.data.frame() # 作为数据框c() # 连接向量cbind() # 按列连接,⽣成⼆维colnames() # 列名detach() # 去除数据框作为路径dim() # ⾏数、列数factor() # 因⼦化is.matrix() # 是否矩阵is.data.frame() # 是否数据框lapply() # 对所有列作函数运算,输出列表matrix() # ⽣成矩阵names() # 查看list的元素名称nrow() # ⾏数ncol() # 列数order() # 数据框排序rbind() # 按⾏连接rep() # 重复数列。
R语言常用函数汇总R语言有众多常用函数,以下是其中一部分:1.数据导入和导出函数- read.csv(:读取CSV文件的数据- read.table(:读取表格数据- read.xlsx(:读取Excel文件的数据- write.csv(:将数据写入CSV文件- write.table(:将数据写入表格文件2.数据处理函数- subset(:根据条件筛选数据- merge(:合并数据集- aggregate(:按照指定变量对数据进行聚合- ifelse(:根据条件进行向量元素的赋值- transform(:对数据进行变换3.数据探索函数- summary(:提供数据的基本统计描述- table(:生成频数统计表- hist(:绘制直方图- boxplot(:绘制箱线图- scatterplot(:绘制散点图4.数据清洗函数- na.omit(:去除包含缺失值的行- na.fill(:填充缺失值- duplicates(:删除重复的行- cut(:将连续变量分组- normalize(:对数据进行标准化5.数据分析函数- lm(:线性回归模型拟合- glm(:广义线性模型拟合- t.test(:进行t检验- cor(:计算变量之间的相关系数- anova(:进行方差分析6.绘图函数- plot(:绘制二维散点图- barplot(:绘制条形图- pie(:绘制饼图- boxplot(:绘制箱线图- hist(:绘制直方图7.矩阵和数组操作函数- matrix(:创建矩阵- array(:创建数组- dim(:返回矩阵或数组的维度-t(:转置矩阵- solve(:求解线性方程组8.字符串处理函数- paste(:将多个字符串拼接在一起- grep(:根据模式匹配字符串- sub(:替换字符串中的部分内容- toupper(:将字符串转换为大写- tolower(:将字符串转换为小写9.时间和日期处理函数- as.Date(:将字符转换为日期格式- format(:格式化日期输出- months(:返回英文月份名称- weekdays(:返回英文星期几名称10.循环和条件控制函数- for(:执行循环操作- while(:执行循环操作,条件为真时执行- if(:执行条件判断- else(:if条件为假时执行- break(:跳出循环。
计算描述性统计量:1、summary():例:summary(mtcars[vars])summary()函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计。
2、apply()函数或sapply()函数计算所选择的任意描述性统计量。
mean、sd、var、min、max、median、length、range 和quantile。
函数fivenum()可返回图基五数总括(Tukey’s five-number summary,即最小值、下四分位数、中位数、上四分位数和最大值)。
sapply()例:mystats <- function(x, na.omit = FALSE) {if (na.omit)x <- x[!is.na(x)]m <- mean(x)n <- length(x)s <- sd(x)skew <- sum((x - m)^3/s^3)/nkurt <- sum((x - m)^4/s^4)/n - 3return(c(n = n, mean = m, stdev = s, skew = skew, kurtosis = kurt))}sapply(mtcars[vars], mystats)3、describe():Hmisc包:返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小的值。
例:library(Hmisc)describe(mtcars[vars])4、stat.desc():pastecs包若basic=TRUE(默认值),则计算其中所有值、空值、缺失值的数量,以及最小值、最大值、值域,还有总和。
若desc=TRUE(同样也是默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数。
若norm=TRUE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及它们的统计显著程度)和Shapiro–Wilk正态检验结果。
setwd( ):设定R软件当前工作目录。 getwd( ):查看R软件当前工作目录。 list.files( ): 查看当前目录下文件。 file.show( ): 显示文件。 file.access( ): 查看文件是否可读可写。 file.create( ): 创建一个文件。例如:file.create(“D:/lesong.xls”). dir.create( ): 创建一个目录。例如:dir.create(D:/lesong). file.remove( ):删除一个文件。 File.choose( ):选择一个文件。 读数据函数read.table( ) 主要参数解释: read.table(file, header = FALSE, sep = "", quote = ""'", dec = ".", row.names, col.names, as.is = !stringsAsFactors, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#", allowEscapes = FALSE, flush = FALSE, stringsAsFactors = default.stringsAsFactors(), fileEncoding = "", encoding = "unknown") header:逻辑参数。指定是否文件第一行为变量名。 na.strings:指定缺失文字。 skip:指定读数据跳过的行数。 nrows:指定数据读入最大的行数。 dec:指定小数点记号。 sep:指定数据分割字符。 row.names与col.names:赋予数据行名和列名。 读入数据其他相关函数: readLines():按行读入数据文件。类似perl读数据方式。 scan( ):将数据读作一行向量形式。 read.delim("educ_scores.txt"):读入文本文件(制表符分隔)。 read.csv("educ_scores1.csv"):读入CSV(逗号分割)。 readBin( ):读入二进制数据。 readChar( ):读入字符型数据。 attach( ): 把数据框的变量链接到内存中. 一般作图函数plot()主要参数解释: plot(x, y = NULL, type = "p", xlim = NULL, ylim = NULL, log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL, ann = par("ann"), axes = TRUE, frame.plot = axes, panel.first = NULL, panel.last = NULL, asp = NA, ...) type:设置图形类型。具体为: type=“p“ 点图 type=“l“ 线图 type=“b“ 点和线 type=“c“ 去掉点只有线段 type=“o“ 线穿过点 type=“h“ 从各点到x轴的垂线段 type=“s“ 基于左侧值的阶段图 type=“S“ 基于右侧值的阶段图 type=“n“ 只有轴,没有具体图形 xlim和ylim:设置图形x轴与y轴的范围。比如xlim(0,30). log:数据取对数。 main:设置图形的上标题。比如说:main=”Genomics analysis” sub: 设置图形的小标题。比如说:sub=”another title”. ann: 逻辑参数。设置是否将系统默认的图形标签显示出来。比如:ann=F. lty: 设置线的类型。比如:lty=4. xlab和ylab:设置x轴与y轴的lable。比如xlab=”sample one”. frame.plot:逻辑参数。设置图形是否输出外框。比如:frame.plot=F. axes:逻辑参数。设置图形是否显示x轴和y轴。比如:axes=F. asp:设置图形屏幕高宽比(y/x). lwd:设置线条的粗细。比如:lwd=4. bg:设置数据点的填充颜色。比如:bg=”pink”. col:设置数据点的外圈颜色。比如:col=”blue”. cex:设置数据点的大小。比如:cex=2.7。 pch:设置数据点的形状。具体为: pch=19: solid circle, pch=20: bullet (smaller solid circle, 2/3 the size of 19), pch=21: filled circle, pch=22: filled square, pch=23: filled diamond, pch=24: filled triangle point-up, pch=25: filled triangle point down.
add:逻辑参数。设置图形是否重合。 font.main与font.sub:设置上标题和小标题的字体格式。 col.main与col.sub :设置上标题和小标题的字体颜色。 实例演习: 使用给定数据(testfile.txt)用R软件作出以下图形并保存为PDF格式和jpg格式。
参考程序: setwd('E:/') file=read.table('testfile.txt') attach(file) jpeg(file='plot one.jpg') plot(V1,V2,type='l',xlim=c(30,75),frame.plot=F,lwd=2, xlab='横坐标 ',ylab='纵坐标' ,main='PLOT ONE',sub='2010/3/12', col='pink',font.main=9,col.main=4,font.sub=9,col.sub='red') dev.off()
pdf(file='plot one.pdf') plot(V1,V2,type='l',xlim=c(30,75),frame.plot=F,lwd=2, xlab='横坐标 ',ylab='纵坐标' ,main='PLOT ONE',sub='2010/3/12', col='pink',font.main=9,col.main=4,font.sub=9,col.sub='red') dev.off() 饼图函数pie( )主要参数解释: pie(x, labels = names(x), edges = 200, radius = 0.8, clockwise = FALSE, init.angle = if(clockwise) 90 else 0, density = NULL, angle = 45, col = NULL, border = NULL, lty = NULL, main = NULL, ...) x: 指定作饼图的数据。 labels:设置各个分割区的标签。 edges:设置多边形的边数(圆的轮廓是具有很多边的多边形近似)。 radius:设置饼图的半径。特别是在字符标签过长的情况。 clockwise:逻辑参数。设置饼图是否顺时针作出分割区。 init.angle:设置开始画分割区的角度。即对饼图进行旋转。 density:底纹的密度。默认值为NULL。 angle:设置底纹的斜率。 col:设置各个分割区的填充颜色。 main:设置饼图的总标题。 实例演习: 本年度某商品在中国的销售额占其总销售额的12%,在美国为30%,在日本为16%,在欧洲为26%,在台湾为4%,在其他地区为16%。用饼图描述以上数据,作出以下饼图:
参考程序: pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12) names(pie.sales) <- c("China", "USA", "Japanese", "Europe", "Taiwan", "Others") pdf(file='plot two.pdf') pie(pie.sales, col = c("purple", "violetred1", "green3", "cornsilk", "cyan", "white"), main='PLot Two', sub='2010/3/12',col.main=4,col.sub='red') dev.off() 直方图函数hist()主要参数解释: hist(x, breaks = "Sturges", freq = NULL, probability = !freq, include.lowest = TRUE, right = TRUE, density = NULL, angle = 45, col = NULL, border = NULL, main = paste("Histogram of" , xname), xlim = range(breaks), ylim = NULL, xlab = xname, ylab, axes = TRUE, plot = TRUE, labels = FALSE, nclass = NULL, ...) x:作直方图所需的数据。 breaks:用一个向量指定各个单元格的断点;用单个值指定单元格个数;用字符串命名的算法来计算单元格的数量;用函数计算单元格的数量。
density:底纹的密度。默认值为NULL。 angle:设置底纹的斜率。