library(vcd) #首先要安装一个“vcd”的安装包
counts<-table(Arthritis$Improved) #Arthritis是个数据集,table()函数起到了计数的作用
counts
barplot(counts,main="sample bar plot",xlab="improvement",ylab="Frequency") #绘制简单的条形图 如图一
barplot(counts,main="sample bar plot",xlab="improvement",ylab="Frequency",horiz=TRUE) #倒置过来如图二
图一
图二
#当绘制的类型变量是一个因子或者有序因子就可以使用plot()函数
plot(Arthritis$Improved,main="Sample Bar plot",xlab="Improved",ylab="Frequency") #画出的图如图一
plot(Arthritis$Improved,main="Sample Bar plot",xlab="Improved",ylab="Frequency",horiz=TRUE) #画出的图如图二
##堆砌条形图和分组条形图
counts<-table(Arthritis$Improved,Arthritis$Treatment)#生成类似列联表的东西
counts
输出结果:
Placebo Treated
None 29 13
Some 7 7
Marked 7 21
barplot(counts,main="stacked Bar plot",xlab="treatment",ylab="frequency",col=c("red","yellow","green"),legend=rownames(counts)) #画出如图三
barplot(counts,main="stacked Bar plot",xlab="treatment",ylab="frequency",col=c("red","yellow","green"),legend=rownames(counts),beside=TRUE) #画出如图四
图三
图四
##均值条形图,对均值进行排序处理
states<-data.frame(state.region,state.x77)
means<-aggregate(states$Illiteracy,by=list(state.region),FUN=mean)#数据进行整合
means<-means[order(means$x),]#将均值从小到大排序
means
barplot(means$x,names.arg=means$Group.1,main="Mean Illiteracy Rate") #如图五
图 五
#条形图的微调
par(mar=c(5,8,4,2))
par(las=2)
counts<-table(Arthritis$Improved)
barplot(counts,main="Treament outcome",horiz=TRUE,cex.names=0.8,names.arg=c("No Improvement","Some improvement","Marked Improvement")) #names.arg() 许你指定一个字符向量作为条形的标签名,做出的图如图六所示