R在断行的地方加“+”表示连接 标准赋值符号: < − \color{#A0F}<- <− 安装包,加载包: i n s t a l l . p a c k a g e s ( c ( " 包 名 " , " 包 名 " ) ) l i b r a r y ( 包 名 ) \color{#A0F}install.packages(c("包名","包名"))\quad library(包名) install.packages(c("包名","包名"))library(包名)
向量 R中录入一个向量: a < − c ( 2 , 3 , 4 , 5 ) \color{#A0F}a<-c(2,3,4,5) a<−c(2,3,4,5) 同一个向量中的元素只能是同一类型的数据,不能混杂 访问a中第二、五个元素: a [ c ( 2 , 3 ) ] \color{#A0F}a[c(2,3)] a[c(2,3)] 矩阵 创建矩阵: m a t < − m a t r i x ( d a t a = N A , n r o w = 1 , c n o l = 1 , b y r o w = F L A S E , d i m n a m e s = N U L L ) \color{#A0F}mat<-matrix(data=NA,nrow=1,cnol=1,byrow=FLASE,dimnames=NULL) mat<−matrix(data=NA,nrow=1,cnol=1,byrow=FLASE,dimnames=NULL),(数据向量,矩阵行数,矩阵列数,默认按列填充,list矩阵的行名列名) 转置矩阵: t ( ) \color{#A0F}t() t() 生成24个在25到100之间均匀分布的随机数,并取整: r o u n d ( r u n i f ( 24 , 25 , 100 ) ) \color{#A0F}round(runif(24,25,100)) round(runif(24,25,100)) 数组 创建数组: a r r a y ( d a t a = N A , d i m = l e n g t h ( d a t a ) , d i m n a m e s = N U L L ) \color{#A0F}array(data=NA,dim=length(data),dimnames=NULL) array(data=NA,dim=length(data),dimnames=NULL),(数据向量,每个维度的最长度,维度标签) **数据框 ** 格式: d a t a . f r a m e ( c o l 1 , c o l 2 , c o l 3 ) \color{#A0F}data.frame(col1,col2,col3) data.frame(col1,col2,col3) 查看数据的前3行: h e a d ( d f , 3 ) \color{#A0F}head(df,3) head(df,3) 查看数据的后3行: t a i l ( d f , 3 ) \color{#A0F}tail(df,3) tail(df,3) 查看数据的结构: s t r ( d f ) \color{#A0F}str(df) str(df) 查看数据值的范围: s u m m a r y ( d f ) \color{#A0F}summary(df) summary(df) 查看数据的列名: c o l n a m e s ( d f ) \color{#A0F}colnames(df) colnames(df) 查看数据的类型: c l a s s ( d f ) \color{#A0F}class(df) class(df) 查看数据的行数,列数: n r o w ( d f ) , n c o l ( d f ) \color{#A0F}nrow(df),ncol(df) nrow(df),ncol(df) 同时查看数据的行数和列数: d i m ( d f ) \color{#A0F}dim(df) dim(df) 按行合并数据框: r b i n d ( d f 1 , d f 2 ) \color{#A0F}rbind(df1,df2) rbind(df1,df2),列数不变 将df2的第2,3列合并到df1: c b i n d ( d f 1 , d f 2 [ , 2 : 3 ] ) \color{#A0F}cbind(df1,df2[,2:3]) cbind(df1,df2[,2:3]),行数不变 对姓名做降序排列: s o r t ( d f ¥ 姓 名 , d e c r e a s i n g = T U R E ) \color{#A0F}sort(df¥姓名,decreasing=TURE) sort(df¥姓名,decreasing=TURE),默认升序 对表按姓名做升序: d f [ o r d e r ( d f 1 ¥ 姓 名 ) , ] \color{#A0F}df[order(df1¥姓名),] df[order(df1¥姓名),] 重命名: r e n a m e ( ) \color{#A0F}rename() rename() 指定数据框: a t t a c h ( d a t a ) , d e t a c h ( d a t a ) \color{#A0F}attach(data),detach(data) attach(data),detach(data) 四舍五入保留两位: r o u n d ( x , d i g t i s = 2 ) \color{#A0F}round(x,digtis=2) round(x,digtis=2) 因子和列表 统 计 学 变 量 { 类 别 变 量 ( 定 性 变 量 ) { 无 序 类 别 变 量 有 序 类 别 变 量 数 字 变 量 ( 定 量 变 量 ) { 离 散 变 量 连 续 变 量 统计学变量\begin{cases} 类别变量(定性变量)\begin{cases} 无序类别变量\\有序类别变量 \end{cases}\\ 数字变量(定量变量)\begin{cases} 离散变量\\连续变量 \end{cases}\\ \end{cases} 统计学变量⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧类别变量(定性变量){无序类别变量有序类别变量数字变量(定量变量){离散变量连续变量 在R中类别变量称为因子,因子的取值称为水平 将无序因子转换为数值:(按拼音取levels) a < − c ( " 金 融 " , " 地 产 " , " 医 药 " , " 医 药 " , " 金 融 " , " 医 药 " ) \color{#A0F}a<-c("金融","地产","医药","医药","金融","医药") a<−c("金融","地产","医药","医药","金融","医药") f < − f a c t o r ( a ) \color{#A0F}f<-factor(a) f<−factor(a) a s . n u m e r i c ( f ) \color{#A0F}as.numeric(f) as.numeric(f) 将有序因子转换为数值: b < − c ( " 很 好 " , " 好 " , " 一 般 " , " 差 " , " 很 差 " ) \color{#A0F}b<-c("很好","好","一般","差","很差") b<−c("很好","好","一般","差","很差") f < − f a c t o r ( b , o r d e r = T R U E , l e v e l s = c ( " 很 好 " , " 好 " , " 一 般 " , " 差 " , " 很 差 " ) ) \color{#A0F}f<-factor(b,order=TRUE,levels=c("很好","好","一般","差","很差")) f<−factor(b,order=TRUE,levels=c("很好","好","一般","差","很差")) a s . n u m e r i c ( f ) \color{#A0F}as.numeric(f) as.numeric(f) 列表list
读取数据: t a b l e 1 _ 1 < − r e a d . c s v ( " C : / a a / a a . c s v " , h e a d e r = F L A S E ) \color{#A0F}table1\_1<-read.csv("C:/aa/aa.csv",header=FLASE) table1_1<−read.csv("C:/aa/aa.csv",header=FLASE),默认含有 保存数据: w r i t e . c s v ( t a b l e 1 _ 1 , f i l e = " C : / a a / a a . c s v " ) \color{#A0F}write.csv(table1\_1,file="C:/aa/aa.csv") write.csv(table1_1,file="C:/aa/aa.csv") 保存R格式: s a v e ( t a b l e 1 _ 1 , f i l e = " C : / a a / a a . R D a t a " ) \color{#A0F}save(table1\_1,file="C:/aa/aa.RData") save(table1_1,file="C:/aa/aa.RData") 数据类型转换
变量->向量 a s . v e c t o r ( ) \color{#A0F}as.vector() as.vector() 数据框转换成矩阵,才能转换成向量数据框->矩阵 a s . m a t r i x ( ) \color{#A0F}as.matrix() as.matrix() 矩阵行名: r o w n a m e s ( m a t r i x 1 _ 1 ) = t a b l e 1 _ 1 [ , 1 ] \color{#A0F}rownames(matrix1\_1)=table1\_1[,1] rownames(matrix1_1)=table1_1[,1]短格式数据->长格式数据 数据中有标识变量 l i b a r a y ( r e s h a p e 2 ) \color{#A0F}libaray(reshape2) libaray(reshape2) t a b l e 1 _ 1 _ 1 < − m e l t ( t a b l e 1 _ 1 , i d . v a r s = " 姓 名 " , v a r i a b l e = " 课 程 " , v a l u e . n a m e = " 分 数 " ) \color{#A0F}table1\_1\_1<-melt(table1\_1,id.vars="姓名",variable="课程",value.name="分数") table1_1_1<−melt(table1_1,id.vars="姓名",variable="课程",value.name="分数") id.vars称为为标识变量,用于指定按哪些因子(一个或多个)汇集成其他变量(通常是数值变量)的值。例如上例,表示要将课程的分数按照姓名汇集成一个变量,而且汇集到一列的数值与原来的课程和姓名相对应。 数据中无标识变量 增加一个付给Id: I d < − c b i n d ( t a b l e 1 4 , i d = f a c t o r ( 1 : 5 ) ) \color{#A0F}Id<-cbind(table1_4,id=factor(1:5)) Id<−cbind(table14,id=factor(1:5))生成随机数 生成均值为mean、标志差为sd的正态分布n个随机数,函数为: r n o r m ( n , m e a n = 0 , s d = 1 ) \color{#A0F}rnorm(n,mean=0,sd=1) rnorm(n,mean=0,sd=1) 设定随机数种子: s e t . s e e d ( 15 ) \color{#A0F}set.seed(15) set.seed(15) 在0到100之间产生10个均匀分布随机数: r u n i f ( 10 , 0 , 100 ) \color{#A0F}runif(10,0,100) runif(10,0,100) 10个自由度为15的 χ 2 \chi ^2 χ2分布随机数: r c h i s p ( 10 , 15 ) \color{#A0F}rchisp(10,15) rchisp(10,15) 数据抽样 s a m p l e ( x , s i z e , r e p l a c e = F A L S E , p r o b = N U L L ) \color{#A0F}sample(x,size,replace=FALSE,prob=NULL) sample(x,size,replace=FALSE,prob=NULL),(向量,样本量,默认无放回抽样,要抽取元素的概率权重问题)
频数分布表是对类别数据(因子的水平)计数或数值数据类别化(分组)后计数生成的表格 4. 类别数据频数分布表 base包中的table stats包中的ftable vcd包中的structable 一维列联表 只涉及一个类别变量,这个变量的各类别(取值)可以放在频数分布表中“行“的位置,将该变量的各类别及其相应的频数列出来就是一维列联表 m y t b a l e < − t a b l e ( d a t a 1 _ 1 ¥ 满 意 度 ) \color{#A0F}mytbale<-table(data1\_1¥满意度) mytbale<−table(data1_1¥满意度) 将表转换为百分比表: p r o p . t a b l e ( m y t a b l e 1 ) ∗ 100 \color{#A0F}prop.table(mytable1)*100 prop.table(mytable1)∗100 二维连列表 涉及两个类别变量时,通常将一个变量的各类别放在“行”的位置,另一个变量各类别放在“列”的位置。有两个类别变量交叉分类形成的频数分布表称为二维列联表(二维表,叫交叉表) m y t b a l e 2 < − t a b l e ( d a t a 1 _ 1 ¥ 性 别 , d a t a 1 _ 1 ¥ 满 意 度 ) \color{#A0F}mytbale2<-table(data1\_1¥性别,data1\_1¥满意度) mytbale2<−table(data1_1¥性别,data1_1¥满意度),行列 添加边际和: a d d m a r g i n s ( m y t a b l e 2 ) \color{#A0F}addmargins(mytable2) addmargins(mytable2) 多维列联表 涉及两个以上类别变量时,通常将一个或多个变量按“列”摆放,其余变量则按“行”摆放,这种由多个类别变量生成的频数分布表称为多维列联表 stats包ftable、vcd包structable f t a b l e ( x , e x c l u d e − c ( N A , N a N ) , r o w . v a r s = N U L L , c o l . v a r s = N U L L ) \color{#A0F}ftable(x,exclude-c(NA,NaN),row.vars=NULL,col.vars=NULL) ftable(x,exclude−c(NA,NaN),row.vars=NULL,col.vars=NULL) 5. 数值数据频数分布表 先将其类别化:确定组数;确定组距;cut函数分组。 确定组数K K = 1 + l o g 10 ( n ) / l o g 10 ( 2 ) \color{#A0F}K=1+log10(n)/log10(2) K=1+log10(n)/log10(2) 确定组距 组 距 = ( 最 大 数 − 最 小 数 ) / 组 数 \color{#A0F}组距=(最大数-最小数)/组数 组距=(最大数−最小数)/组数 cut函数分组 c u t ( x , b r e a k s , l a b e l s = N U L L , i n c l u d e . l o w e s t = F A L S E , r i g h t = T R U E , d i g . l a b = 3 ) \color{#A0F}cut(x,breaks,labels=NULL,include.lowest=FALSE,right=TRUE,dig.lab=3) cut(x,breaks,labels=NULL,include.lowest=FALSE,right=TRUE,dig.lab=3),(数据,要分的组数,生成组的标签默认用(a,b],确定区间是否包括下限值或上限值,确定区间是否包含上限值默认包含,设置区间组所使用的数字位数)
高级绘图函数 { 高 级 绘 图 函 数 , 可 以 产 生 独 立 的 图 形 低 级 绘 图 函 数 , 添 加 图 形 函 数 \begin{cases} 高级绘图函数,可以产生独立的图形\\ 低级绘图函数,添加图形函数 \end{cases} {高级绘图函数,可以产生独立的图形低级绘图函数,添加图形函数
Plot函数 p l o t ( x , y = N U L L , t y p e = " p " . . . ) t y p e : p 画 点 , l 画 线 , o 线 点 , b 用 线 将 点 连 接 , n 什 么 也 不 画 , h 是 画 类 似 直 方 图 的 垂 线 x l i m : x 的 数 值 范 围 c ( x 1 , x 2 ) m a i n : 图 形 的 主 题 s u b : 图 形 的 副 标 题 x l a b : x 轴 的 标 签 a n n : a n n = T R U E 表 示 绘 制 出 坐 标 轴 的 标 签 和 图 形 的 标 题 a x e s : a x e s = F A L S E 表 示 不 画 坐 标 轴 y a x t = n : 不 画 y 轴 f r a m e . p l o t : 表 示 是 否 要 画 出 图 形 外 框 \color{#A0F}plot(x,y=NULL,type="p"...)\\ type:p画点,l画线,o线点,b用线将点连接,n什么也不画,h是画类似直方图的垂线\\ xlim:x的数值范围c(x1,x2)\\ main:图形的主题\\ sub:图形的副标题\\ xlab:x轴的标签\\ ann:ann=TRUE表示绘制出坐标轴的标签和图形的标题\\ axes:axes=FALSE表示不画坐标轴\\ yaxt=n:不画y轴\\ frame.plot:表示是否要画出图形外框 plot(x,y=NULL,type="p"...)type:p画点,l画线,o线点,b用线将点连接,n什么也不画,h是画类似直方图的垂线xlim:x的数值范围c(x1,x2)main:图形的主题sub:图形的副标题xlab:x轴的标签ann:ann=TRUE表示绘制出坐标轴的标签和图形的标题axes:axes=FALSE表示不画坐标轴yaxt=n:不画y轴frame.plot:表示是否要画出图形外框 l w d : 线 宽 c o l : 颜 色 p c h : 点 样 子 l t y : 线 样 子 \color{red}lwd:线宽\\col:颜色\\pch:点样子\\lty:线样子 lwd:线宽col:颜色pch:点样子lty:线样子其他高级绘图函数低级绘图函数 a b l i n e ( ) : h = 0 水 平 , v = 0 垂 直 , a = 1 , b = 2 斜 线 , 线 性 拟 合 模 型 l i n e s ( x , y ) : 可 以 画 曲 线 , x 从 小 到 大 t e x t : 对 图 中 点 加 文 字 m t e x t : 对 图 外 面 的 边 框 加 文 字 t i t l e : 添 加 标 题 \color{#A0F}abline():h=0水平,v=0垂直,a=1,b=2斜线,线性拟合模型\\ lines(x,y):可以画曲线,x从小到大\\ text:对图中点加文字\\ mtext:对图外面的边框加文字 title:添加标题 abline():h=0水平,v=0垂直,a=1,b=2斜线,线性拟合模型lines(x,y):可以画曲线,x从小到大text:对图中点加文字mtext:对图外面的边框加文字title:添加标题
其他 l m ( f u m l u a ) : 求 线 性 回 归 模 型 r e p ( 1 : 8 ) : 1 到 8 s e q ( 100 , 750 , 20 ) : 初 始 值 为 100 , 终 止 值 为 750 , 每 次 递 增 20 \color{#A0F}lm(fumlua):求线性回归模型\\ rep(1:8):1到8\\ seq(100,750,20):初始值为100,终止值为750,每次递增20 lm(fumlua):求线性回归模型rep(1:8):1到8seq(100,750,20):初始值为100,终止值为750,每次递增20
图例函数 l e g e n d ( ) ” t o p l e f t ” : 位 置 b o t t o m r i g h t t i t l e : 标 题 l e g e n d : 字 符 向 量 表 示 图 例 内 容 h o r i z : F A L S E 图 例 竖 着 摆 放 c e x : 字 的 大 小 \color{red}legend()\\ ”topleft”:位置bottomright\\ title:标题\\ legend:字符向量表示图例内容\\ horiz:FALSE图例竖着摆放\\ cex:字的大小 legend()”topleft”:位置bottomrighttitle:标题legend:字符向量表示图例内容horiz:FALSE图例竖着摆放cex:字的大小
坐标轴函数 a x i s ( s i d e , a t . . . ) s i d e : 1 下 , 2 左 , 3 上 , 4 右 , 顺 时 针 a t : 数 值 , l a b e l s : 标 签 , 逻 辑 值 或 向 量 c o l . a x i s : 坐 标 轴 颜 色 l a s : 0 水 平 写 , 2 垂 直 写 l i n e : 距 离 边 距 的 行 数 \color{#A0F}axis(side,at...)\\ side:1下,2左,3上,4右,顺时针\\ at:数值,\\ labels:标签,逻辑值或向量\\ col.axis:坐标轴颜色\\ las:0水平写,2垂直写\\ line:距离边距的行数 axis(side,at...)side:1下,2左,3上,4右,顺时针at:数值,labels:标签,逻辑值或向量col.axis:坐标轴颜色las:0水平写,2垂直写line:距离边距的行数
绘图参数 o p a r < − p a r ( n o . r e a d o n l y = T R U E ) p a r ( ) p a r ( o p a r ) \color{#A0F} opar<-par(no.readonly=TRUE)\\ par()\\ par(opar) opar<−par(no.readonly=TRUE)par()par(opar) par(new=T)就可以在原图上画新图 c o l . : 颜 色 参 数 c e x . : 文 字 参 数 f g : 图 形 的 前 景 色 b g : 图 形 的 背 景 色 p i n = c ( 3 , 4 ) : 宽 高 m a i = c ( 1 , 0.5 , 1 , 0.2 ) : 下 左 上 右 边 界 大 小 m f r o w = c ( 2 , 2 ) : 按 行 填 充 m f c o l : 按 列 填 充 \color{#A0F}col.:颜色参数\\cex.:文字参数\\ fg:图形的前景色\\ bg:图形的背景色\\ pin=c(3,4):宽高\\ mai=c(1,0.5,1,0.2):下左上右边界大小 mfrow=c(2,2):按行填充 mfcol:按列填充 col.:颜色参数cex.:文字参数fg:图形的前景色bg:图形的背景色pin=c(3,4):宽高mai=c(1,0.5,1,0.2):下左上右边界大小mfrow=c(2,2):按行填充mfcol:按列填充
l a y o u t ( m a t ) m a t : 矩 阵 n r o w = 2 n c o l = 2 b y r o w = T R U E : 按 行 填 充 , 默 认 按 列 w i d t h s = c ( 2 , 1 ) : 宽 度 比 h e i g h s = c ( 2 , 1 ) : 长 度 比 l a y o u t . s h o w ( 2 ) \color{#A0F}layout(mat) mat:矩阵\\ nrow=2\\ ncol=2\\ byrow=TRUE:按行填充,默认按列 widths=c(2,1):宽度比 heighs=c(2,1):长度比 layout.show(2) layout(mat)mat:矩阵nrow=2ncol=2byrow=TRUE:按行填充,默认按列widths=c(2,1):宽度比heighs=c(2,1):长度比layout.show(2)
条形图是用一定宽度和高度的矩形来表示各类频数多少的图形。 简单条形图 根据一类别变量或一维表绘制的条形图就是简单条形图 条形图: b a r p l o t ( ) h o r i z : F A L S E 默 认 垂 直 , T R U E 水 平 d e n s i t y : 设 置 阴 影 的 线 条 的 密 度 a n g l e : 设 置 阴 影 线 的 角 度 i n s i d e : 默 认 i n s i d e = T R U E 是 否 画 出 各 条 形 的 边 框 线 b o r d e r : 设 置 各 条 边 框 \color{#A0F}barplot()\\ horiz:FALSE默认垂直,TRUE水平\\ density:设置阴影的线条的密度\\ angle:设置阴影线的角度\\ inside:默认inside=TRUE是否画出各条形的边框线\\ border:设置各条边框 barplot()horiz:FALSE默认垂直,TRUE水平density:设置阴影的线条的密度angle:设置阴影线的角度inside:默认inside=TRUE是否画出各条形的边框线border:设置各条边框 添加频数标签: t e x t ( b a r , t a b l e 3 , l a b l e = t a b l e 3 , p o s = 3 ) \color{#A0F}text(bar,table3,lable=table3,pos=3) text(bar,table3,lable=table3,pos=3),(barplot,y,内容,位置pos=3上方) 添加频数折线: l i n e s ( b a r , t a b l e 3 , t y p e = " o " ) \color{#A0F}lines(bar,table3,type="o") lines(bar,table3,type="o") 添加垂线: p o i n t s ( b a r , t a b l e 3 , t y p e = " h " ) \color{#A0F}points(bar,table3,type="h") points(bar,table3,type="h") Pareto Pareto图是将各种类别的频数多少排序(降序)后绘制的条形图 算累计频数y<-cumsum(x)/sum(x)
并列条形图与堆叠条形图 并列条形图中,一个类别变量作为坐标轴,另一个类别变量各类别频数的条形并列摆放 堆叠条形图中,一个类别变量作为坐标轴,另一个类别变量各类别频数按比例堆叠在同一个条中。
并列条形图 barplot(legend=rownames(mytable1),arg.legend=list(x=9.5,y=330,ncol=3),beside=TRUE) 堆叠条形图脊形图与百分比条形图 脊形图是根据各类别比例绘制的一种条形图,看作是堆叠条形图的一种变种。高度设定都为1,条的宽度与观测频数成比例graphics包种的sineplot,其他和上例一样 sineplot(x,y=NULL) sineplot(formula)y~x 百分比条形图 高宽都一样,用barplot 二维关联图不管 关联图是展示行变量和列变量差异的图形 独立性检验的P值图
马赛克图 马赛克图其图中嵌套举行的面积与列联表相应单元格的频数成比例。graphics包mosaicplot,vcd的mosaic m o s a i c p l o t ( x , s h a d e , l a s ) x + y + z , 三 个 行 列 行 d i r = c ( v h v ) s h a d e : s h a d e = F A L S E 表 示 只 绘 制 标 准 图 形 默 认 ; 绘 制 扩 展 图 形 l a s : 数 值 坐 标 轴 标 签 的 风 格 o f f : 以 百 分 比 形 式 设 置 马 赛 克 图 中 各 级 之 间 的 间 隔 d i r : 设 置 x 中 每 个 向 量 的 方 向 , " v " 表 示 纵 向 , " h " \color{#A0F}mosaicplot(x,shade,las)\\ ~x+y+z,三个行列行dir=c(vhv)\\ shade:shade=FALSE表示只绘制标准图形默认;绘制扩展图形\\ las:数值坐标轴标签的风格\\ off:以百分比形式设置马赛克图中各级之间的间隔\\ dir:设置x中每个向量的方向,"v"表示纵向,"h" mosaicplot(x,shade,las) x+y+z,三个行列行dir=c(vhv)shade:shade=FALSE表示只绘制标准图形默认;绘制扩展图形las:数值坐标轴标签的风格off:以百分比形式设置马赛克图中各级之间的间隔dir:设置x中每个向量的方向,"v"表示纵向,"h" 马赛克图的变种不管 高维关联图不管
饼图不管
直方图与核密度图是观察数据分布特征的常用图形,直观地展示数据分布的形状是否对称 普通直方图 h i s t ( x , b r e a k s . . . ) b r e a k s : 分 组 个 数 , 系 统 会 调 整 l a b e l s : 是 否 打 出 频 数 f r e q : T R U E , y 轴 表 示 频 数 ; 密 度 p r o b a b i l i t y : 与 f r e q 相 反 r i g h t : 默 认 T R U E 右 侧 闭 区 间 , 左 侧 开 区 间 \color{#A0F}hist(x,breaks...)\\ breaks:分组个数,系统会调整\\ labels:是否打出频数\\ freq:TRUE,y轴表示频数;密度\\ probability:与freq相反\\ right:默认TRUE右侧闭区间,左侧开区间 hist(x,breaks...)breaks:分组个数,系统会调整labels:是否打出频数freq:TRUE,y轴表示频数;密度probability:与freq相反right:默认TRUE右侧闭区间,左侧开区间 地毯图 使用rug函数在直方图x轴上画出原始数据的位置,用线段表示,称为地毯图 地 毯 图 : r u g ( d a t a 4 1 ¥ A Q I ) 添 加 核 密 度 曲 线 : l i n e s ( d e n s i t y ( d a t a 4 1 ) ¥ A Q I 加 上 随 机 数 : j i t t e r ( A Q I ) 均 值 : m e a n ( x ) 标 准 差 : s d ( x , c ( 0 , 0 ) ) 添 加 理 论 正 态 曲 线 : c u r v e ( d n o r m ( x , m e a n ( d a t a 4 1 ¥ P M 2.5 ) , s d ( d a t a 4 1 ¥ P M 2.5 ) ) , a d d = T R U E ) 添 加 最 大 值 最 小 值 中 位 数 和 四 分 位 点 : p o i n t s ( q u a n t i l e ( d a t a 4 1 ¥ P M 2.5 ) , c ( 0 , 0 , 0 , 0 ) ) \color{#A0F} 地毯图:rug(data4_1¥AQI)\\ 添加核密度曲线:lines(density(data4_1)¥AQI\\ 加上随机数:jitter(AQI)\\ 均值:mean(x)\\ 标准差:sd(x,c(0,0))\\ 添加理论正态曲线:curve(dnorm(x,mean(data4_1¥PM2.5),sd(data4_1¥PM2.5)),add=TRUE)\\ 添加最大值最小值中位数和四分位点:points(quantile(data4_1¥PM2.5),c(0,0,0,0)) 地毯图:rug(data41¥AQI)添加核密度曲线:lines(density(data41)¥AQI加上随机数:jitter(AQI)均值:mean(x)标准差:sd(x,c(0,0))添加理论正态曲线:curve(dnorm(x,mean(data41¥PM2.5),sd(data41¥PM2.5)),add=TRUE)添加最大值最小值中位数和四分位点:points(quantile(data41¥PM2.5),c(0,0,0,0)) 叠加直方图和堆叠直方图
叠加直方图 将一个变量的直方图叠加到另一个变量的直方图上,绘制出叠加直方图 将直方图加在另一个上hist(add=TRUE)堆叠直方图(条件直方图) 按因子水平来堆叠因子分类的直方图 l i b r a r y ( p l o t r i x ) h i s t S t a c k ( x z , l e g e n d . p o s = " t o p r i g h t " ) l i b r a r y ( e 1071 ) 对 x 求 偏 度 系 数 s k e w n e s s ( X ) \color{#A0F} library(plotrix)\\ histStack(x~z,legend.pos="topright")\\ library(e1071) 对x求偏度系数skewness(X) library(plotrix)histStack(x z,legend.pos="topright")library(e1071)对x求偏度系数skewness(X)核密度图
核密度曲线 核密度图是对数据分布密度较为精确的估计 d < − d e n s i t y ( d a t a 4 1 ¥ A Q I ) p l o t ( d ) 填 充 : p o l y g o n ( d , c o l = " g r e y 90 " , b o r d e r = " g r e y 20 " ) 设 置 带 宽 值 越 大 越 平 滑 : d < − d e n s i t y ( d a t a 4 1 ¥ A Q , d w = 3 I ) \color{#A0F} d<-density(data4_1¥AQI)\\ plot(d)\\ 填充:polygon(d,col="grey90",border="grey20")\\ 设置带宽值越大越平滑:d<-density(data4_1¥AQ,dw=3I) d<−density(data41¥AQI)plot(d)填充:polygon(d,col="grey90",border="grey20")设置带宽值越大越平滑:d<−density(data41¥AQ,dw=3I) 多个数值变量sm包sm.density…compare() 2. 分类核密度图 使用epade包histogarm.ade histogarm.ade(PM2.5,group=质量等级,wall=1,bar=FALSE,bgcol=“grey90”) 条件核密度图 条件密度图用于描述变量x在类别变量y不同水平下的分布 cdplot(formula) cdplot(y~x,data,col)
箱线图 bocplot() 小提琴图 voiplot()
散点图 散点图是两个数值型变量之间是否存在相关关系,关系的形态,正相关负相关相关的强度 斜率-1<=r<=1 $\color{#AOF} y<–4+0.5*x+rnorm(100,0.2) plot(d) polygon(d[cuhll(d)],col=,lty=,lwd=) points(d)#打点 abline(lm(y~x))#画拟合线回归直线 lines(lowess(y~x,f=2/3))#画曲线拟合 $ $\color{#AOF}
$
散点图矩阵 分析多个变两两之间的关系 pairs
如果数值变量的各个取值是 c o p l o t ( f o r m u l a , ) \color{#A0F}coplot(formula,) coplot(formula,)
3个变量 scatterplot3d
气泡图 z气泡大小 plot(cex=z)
symbol
矩阵 m a t r i x \color{#A0F}matrix matrix 数组 a r r a y \color{#A0F}array array
