文档详情

r语言学习系列19-基本统计图形.doc

F****n
实名认证
店铺
DOCX
466.36KB
约22页
文档ID:98087520
r语言学习系列19-基本统计图形.doc_第1页
1/22

19. 基本统计图形目录:一. 条形图二. 饼图三. 直方图四. 箱线图五. 点图六. 散点图七. 相关图八. 图九. 等高线图十. 热图正文:要观察分类变量与定量变量的数据,最基本的方法就是用图形:1. 将变量的分布作可视化展示;2. 通过结果变量进行跨组比较一、条形图条形图通过垂直的或水平的条形展示了类别型变量的分布(频数)函数barplot()的最简单用法是:barplot(height)其中,height为向量或矩阵 1. 简单条形图(height为向量)library(vcd) #使用数据集Arthritiscounts <- table(Arthritis$Improved)counts None Some Marked 42 14 28 par(mfrow=c(1,2))barplot(counts, main = "Simple Bar Plot", xlab = "Improvement", ylab = "Frequency") #竖直条形图barplot(counts, main = "Horizontal Bar Plot", xlab = "Frequency", ylab = "Improvement", horiz = TRUE) #水平条形图2. 堆砌条形图和分组条形图(height为矩阵)若beside=FALSE(默认值),则矩阵中的每一列都将生成图中的一个条形,各列中的值将给出堆砌的“子条”的高度。

若beside=TRUE,则矩阵中的每一列都表示一个分组,各列中的值将并列而不是堆砌library(vcd) #使用数据集Arthritiscounts <- table(Arthritis$Improved, Arthritis$Treatment)counts Placebo Treated None 29 13 Some 7 7 Marked 7 21par(mfrow=c(1,2))barplot(counts, main = "Stacked Bar Plot", xlab = "Treatment", ylab = "Frequency", col = c("red", "yellow", "green"),legend = rownames(counts)) #堆砌条形图barplot(counts, main = "Grouped Bar Plot", xlab = "Treatment", ylab = "Frequency", col = c("red", "yellow", "green"),legend = rownames(counts), beside = TRUE) #分组条形图注:棘状图可对堆砌条形图进行重缩放library(vcd)attach(Arthritis)counts <- table(Treatment, Improved)spine(counts, main = "Spinogram Example")detach(Arthritis)3. 均值条形图条形图并不一定要基于计数数据或频率数据,也可以使用数据整合函数并将结果传递给函数barplot(),来创建表示均值、中位数、标准差等的条形图。

states <- data.frame(state.region, state.x77)means <- aggregate(states$Illiteracy, by = list(state.region), FUN = mean)means <- means[order(means$x), ] #均值从小到大排序means Group.1 x3 North Central 0.1 Northeast 1.4 West 1.2 South 1.barplot(means$x, names.arg=means$Group.1) #参数2设置标签title("Mean Illiteracy Rate")4. 条形图的微调par(mar = c(5, 8, 4, 2))par(las = 2) #旋转图形标签counts <- table(Arthritis$Improved)barplot(counts, main = "Treatment Outcome", horiz = TRUE, cex.names = 0.8, names.arg = c("No Improvement", "Some Improvement", "Marked Improvement")) #cex.names缩小字体二、饼图饼图的功能同条形图,每一个扇形的角度与相应频数成比例。

基本函数为:pie(x, labels)其中,x为非负数值向量,表示每个扇形的面积;labels表示各扇形标签的字符型向量attach(mtcars)piedata<-table(cyl)percent<-as.vector(piedata)/sum(as.vector(piedata))*100 #计算百分比pie(piedata,labels=paste(c("4","6","8"),"cylinders: ", percent, "%"))detach(mtcars)注:饼图不容易比较各扇形的大小,plotrix包中的fan.plot()函数可以绘制扇形图library(plotrix)slices <- c(10, 12, 4, 16, 8)lbls <- c("US", "UK", "Australia", "Germany", "France")fan.plot(slices, labels = lbls, main = "Fan Plot")三、直方图对于定量变量(数值型变量),常用直方图来展示某个变量取值的分布,利用直方图可以估计总体的概率密度将变量取值的范围分成若干区间。

直方图是用面积而不是用高度来表示数,总面积是100%. 每个区间矩形的面积恰是落在该区间内的百分数(频率),所以矩形的高 = 频率 / 区间长度 = 密度特别地,若区间是等长的,则“矩形的高”就是频率注意:直方图矩形之间是没有间隔的函数hist()用于绘制直方图,基本格式为:hist(x, breaks="Sturges",freq=NULL, probability=..., main=...)其中,x为数值向量; breaks为分段区间:各区间端点构成的向量、分段数、计算划分区间的算法名称、划分区间个数的函数(方法);freq默认为TRUE表示绘制频数直方图,若为FALSE则绘制频率直方图;probability与freq对立,设置是否以概率密度作图,默认为FALSEattach(mtcars)par(mfrow = c(2, 2))hist(mpg) #简单直方图hist(mpg, breaks = 12, col = "red", xlab = "Miles Per Gallon", main = "Colored histogram with 12 bins") #指定组数和颜色hist(mpg, freq = FALSE, breaks = 12, col = "red", xlab = "Miles Per Gallon", main = "Histogram, rug plot, density curve")rug(jitter(mpg)) #添加轴须lines(density(mpg), col = "blue", lwd = 2) #添加密度曲线x <- mpghist(x, breaks = 12, freq=FALSE, col = "red", xlab = "Miles Per Gallon", main = "Histogram with normal curve and box")lines(density(rnorm(1e+6,mean(mpg),sd(mpg))),lty=2,col="red") #添加正态密度曲线box()detach(mtcars)注:sm包中的函数pare()也用于绘制核密度图,可以堆放多条密度曲线,用于组间差异的比较。

基本格式为:pare(x, group, h, ...)其中,x为数值向量;group为分组变量(因子型数据);h为光滑参数示例:library(sm)attach(mtcars)pare(wt,factor(cyl))legend("topright",levels(factor(cyl)),lty=1:3,col=2:4,bty="n")detach(mtcars)四、箱线图在一条数轴上,以数据的上下四分位数(Q1-Q3)为界画一个矩形盒子(中间50%的数据落在盒内);在数据的中位数位置画一条线段为中位线;用◇标记数据的均值;默认延长线不超过盒长的1.5倍,之外的点认为是异常值(用○标记)箱线图的主要应用就是,剔除数据的异常值、判断数据的偏态和尾重、可视化组间差异用函数boxplot()绘制箱线图,单独的箱线图调用格式:boxplot(x, range=1.5, width=NULL, varwidth=FALSE,notch=FALSE, horizontal=FALSE, ...)其中,x为一系列数值向量,依次做出箱线图;range设置延长线长度:几倍盒长,默认1.5;width设置盒长;varwidth设置盒宽与样本量的平方根是否成比例,默认FALSEnotch设置是否绘制带刻槽的凹形盒,默认FALSEhorizontal设置箱线图的方向,默认FALSE垂直作图,TURE为水平作图;2. 组间比较的箱线图调用格式:boxplot(formula, data=NULL, subset, ...)其中,formula为一个公式,例如y~grp,表示y为数值向量,grp为分组变量;data为提供数据的数据框;boxplot(mpg ~ cyl, data = mtcars, main = "不同汽缸数量车型油耗的箱线图",xlab = "Number of Cylinders", ylab = "Miles Per Gallon")可见,随着汽缸数的减少,油耗明显降低。

mtcars$cyl.f <- factor(mtcars$cyl, levels = c(4, 6, 8), labels = c("4", "6", "8"))mtcars$am.f <- factor(mtcars$am, levels = c(0, 1), labels = c("auto", "standard"))boxplot(mpg ~ am.f * cyl.f, data = mtcars, varwidth = TRUE, col = c("gold", "darkgreen"), 。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档