R中的条形图和饼图绘制

来源:互联网 发布:程序员的自我修养 微盘 编辑:程序博客网 时间:2024/06/06 15:38

分类型数据的图形表示

统计学上把取值范围是有限个值或是一个数列构成的变量称为离散变量,其中表示分类情况的离散变量又称为分类变量

1. 条形图(Barplot)

> library(vcd) #加载vcd包> counts <- table(Arthritis$Improved)> counts  None   Some Marked     42     14     28 > par(mfrow=c(1,2))#设置作图窗口为 1 x 2 格式> barplot(counts,main = 'Simple Bar Plot',xlab ='Improvement',ylab = 'Frequency') #作正常条形图> barplot(counts,main = 'Horizontal Bar Plot',xlab = 'Improvement',ylab = 'Frequency',horiz=TRUE)#作水平条形图> par(mfrow=c(1,1))#恢复作图窗口为 1 x 1> #结果如下:

这里写图片描述

> library(vcd)> counts <- table(Arthritis$Improved,Arthritis$Treatment)> counts         Placebo Treated  None        29      13  Some         7       7  Marked       7      21> par(mfrow=c(1,2))> barplot(counts,main = 'Stacked Bar Plot',xlab='Improvement',ylab='Frequency',col=c('red','yellow','green'),legend = rownames(counts))#作堆砌条形图> barplot(counts,main = 'Grouped Bar Plot',xlab='Improvement',ylab='Frequency',col=c('red','yellow','green'),legend = rownames(counts),beside = TRUE)#作分组条形图> par(mfrow=c(1,1))

这里写图片描述

> states <- data.frame(state.region,state.x77)> means <- aggregate(states$Illiteracy,by=list(state.region),FUN=mean)> means        Group.1        x1     Northeast 1.0000002         South 1.7375003 North Central 0.7000004          West 1.023077> means <- means[order(means$x),]将均值从小到大排序> means        Group.1        x3 North Central 0.7000001     Northeast 1.0000004          West 1.0230772         South 1.737500> barplot(means$x,names.arg = means$group.1) #均值条形图> title('Mean Illiteracy Rate')#调用title函数和barplot时添加main参数是等价的

效果如下:
这里写图片描述

library(vcd)attach(Arthritis)counts <- table(Treatment,Improved)spine(counts,main = 'Spinogram example')#棘状图      #棘状图可由vcd包中的函数spine()绘制detach(Arthritis)

效果如下:
这里写图片描述

2. 饼图(Pie Graph)

par(mfrow=c(2,2))slices <- c(10,12,4,16,8)lbls <- c('US','UK','Aurtralia','Germany','France')pie(slices,labels = lbls,main = 'Simple Pie Chart')pct <- round(slices/sum(slices)*100)#为饼图添加比例数值lbls2 <- paste(lbls,' ',pct,'%',sep='')pie(slices,labels = lbls2,col = rainbow(length(lbls2)),    main = 'Pie Chart with Percentages')library(plotrix) #需要加载plotrix包pie3D(slices,labels = lbls,explode = 0.1,      main = '3D Pie Chart')#3D饼图mytable <- table(state.region)lbls3 <- paste(names(mytable),'\n',mytable,sep='')pie(mytable,labels = lbls3,    main = 'Pie Chart from a table\n(with sample sizes)')    #从表格创建饼图par(mfrow = c(1,1))

效果如下:
这里写图片描述

# Fan plotslibrary(plotrix)#需要加载plotrix包slices <- c(10, 12,4, 16, 8) lbls <- c("US", "UK", "Australia", "Germany", "France")   fan.plot(slices, labels = lbls, main="Fan Plot")#绘制扇图

效果如下:
这里写图片描述

原创粉丝点击