R语言怎么利用barplot()制作条形图的各种实例
本篇内容介绍了“R语言怎么利用barplot()制作条形图的各种实例”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
前言
函数barplot()可以绘制条形图,其格式为
barplot(height)
height是一个向量或者矩阵,使用horiz=TRUE可以生成一个水平的条形图,
例子
1,用条形图统计分类变量的频数
注意条形图常用来统计分类变量每一钟元素的频数,此时可以运用table()进行处理分类变量,其可以统计分类变量的各个元素的频次。处理后的结果为table格式而barplot()可以识别table格式
table()函数可以统计列各种元素出现的次数
counts<-table(Arthritis$Improved) counts barplot(counts,xlab="Improvement",ylab="Frequency",main="SimpleBarPloy")
例子2
生成水平的条形图
barplot()参数horiz可以指定图形是否为水平的条形图
注意生成的水平的条形图时,x,y轴的名称不会跟着变换所以x,y轴的名称应同时跟着变换
barplot(counts,horiz=TRUE,ylab="Improvement",xlab="Frequency",main="SimpleBarPloy")
例子3,使用plot()函数绘制条形图
如果像上面的例子那样,绘制的类别型变量是一个因子或有序因子,可以直接使用plot()函数快速创建条形图,这样就不用再通过table()函数进行处理变量。图片效果与例子1相同
plot(Arthritis$Improved,xlab="Improvement",ylab="Frequency",main="SimpleBarPloy") #绘制水平的条形图 plot(Arthritis$Improved,horiz=TRUE,xlab="Improvement",ylab="Frequency",main="SimpleBarPloy")
例子3绘制堆砌条形图和分组条形图
如果height是一个矩阵而不是一个向量,则绘制结果将是一幅堆砌条形图或分组条形图
当beside=FALSE(默认值),则生成堆砌条形图–矩阵的每一列都将生成一个条形
当beside=TRUE,则生成分组条形图–矩阵中的每一列都表示一个分组,各列的中值将并列而不是堆砌
注意barplot()中的height要么是向量要么是矩阵,不能是data.frame但是可以是table格式
opar<-par(no.readonly=TRUE) par(opar) par(mfrow=c(1,2)) counts<-table(Arthritis$Improved,Arthritis$Treatment) counts #绘制堆砌条形图 barplot(counts,main="StackedBarPlot",xlab="Treatment",ylab="Frequency", col=c("red","yellow","green"),legend=row.names(counts)) #绘制分组条形图 barplot(counts,beside=TRUE,main="StackedBarPlot",xlab="Treatment",ylab="Frequency", col=c("red","yellow","green"),legend=row.names(counts))
例子4
使用数据整合函数 aggregate()并将结果传递给barplot()函数,来创建表示均值,中位数,标准值等条形图能够如此作图的原因是因为我们可以向作图函数barplot()只传递一个数值向量,再通过参数names.arg指定横坐标的标签,(arg为英文自变量的含义)
这样我们我们输入各个分组后各组的平均值的值向量、在通过参数names.arg指定各组名称为横坐标标签就可以制作成一个条形图了
#使用数据整合函数aggregate()并将结果传递给barplot()函数,来创建表示均值,中位数,标准差等条形图 #生成要作图的数据框 states<-data.frame(state.region,state.x77) #根据列state.region对列states$Illiteracy进行分组并求每组的均值。 #by=list(state.region)指定分组变量 #states$Illiteracy为被分组的变量 #FUN=mean是指定处理被分组的变量的函数 means<-aggregate(states$Illiteracy,by=list(state.region),FUN=mean) #设定数值只能保留2位小数 options(digits=2) #barplot()函数可以输入没有索引的向量,但是这个时候就没有横坐标的标签, #这时就需要通过names.arg参数指定(arg为自变量的意思) par(opar) barplot(means$x,names.arg=means$Group.1) title("MeanIlliteracyRate")
例子5,条形图的微调
cex.names参数调整字号
names.arg指定字符向量作为条形的标签图
las可以调整标签的参数,las=2为水平方向,las=0为垂直方向
par(mar=c(5,8,4,2)) #las调整标签的参数,2为水平,0为垂直 par(las=2) library(vcd) counts<-table(Arthritis$Improved) barplot(counts, main="TreatmentOutcome", horiz=TRUE, #调整标签字体大小 cex.names=0.8, #修改标签文本 names.arg=c("NoImprovement","SomeImprovement","MarkedImprovement"))
例子6,棘状图
棘状图–棘状图对堆砌条形图进行了重缩放,这样让每列生成的条形图的高度均为1,换句话说它把每一列的数值替换为此数值在这一列数值总和的占比。
棘状图可以由vcd包中的函数spine()绘制
library(vcd) attach(Arthritis) counts<-table(Treatment,Improved) spine(counts,main="SpinogramExample")
结束总结
能够制作条形图的函数有三个分别是barplot()函数,plot()函数和vcd包中的spine()函数
plot()函数可以直接输入分类变量,不用再通过table()处理分类变量把它变成含有分类变量各个元素频数的表格。
spine()函数可以生成棘状图
条形图可以绘制成水平的,但是此时应注意修改x轴坐标的名称
当需要绘制条形图的是一个数据框时此时会生成堆砌或者分组的条形图。生成什么样的条形图由参数beside决定,当beside=FALSE时生成堆砌的条形图(每一列的数值将堆砌在一个条形上),否则生成分组的条形图
当函数barplot()的参数height是一个数值向量时(只有数值不附带索引),此时可以通过names.arg参数指定x轴刻度的标签
“R语言怎么利用barplot()制作条形图的各种实例”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!
推荐阅读
-
R语言标签平滑是什么
-
R语言怎么批量读取某路径下文件内容
R语言怎么批量读取某路径下文件内容今天小编给大家分享一下R语言怎么...
-
R语言怎么安装芯片原始数据标准化的包
R语言怎么安装芯片原始数据标准化的包这篇“R语言怎么安装芯片原始数...
-
TPM,FPKM(R语言怎么计算转录组中Count)
R语言怎么计算转录组中Count,TPM,FPKM本文小编为大家...
-
r语言如何绘制蛋白质组和转录组相关性图
r语言如何绘制蛋白质组和转录组相关性图这篇“r语言如何绘制蛋白质组...
-
怎么用R语言的limma方法进行芯片数据差异表达分析
怎么用R语言的limma方法进行芯片数据差异表达分析这篇文章主要介...
-
r语言中如何使用reshape2包将宽型数据转换成长型数据
r语言中如何使用reshape2包将宽型数据转换成长型数据这篇文章...
-
怎么用R语言的rgb函数获取颜色
怎么用R语言的rgb函数获取颜色今天小编给大家分享一下怎么用R语言...
-
怎么使用R语言筛选基因
-
在R语言中如何利用split划分数据
在R语言中如何利用split划分数据这篇文章给大家分享的是有关在R...