R中的条形图和饼图绘制

分类型数据的图形表示

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

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        x
1     Northeast 1.000000
2         South 1.737500
3 North Central 0.700000
4          West 1.023077
> means <- means[order(means$x),]将均值从小到大排序
> means
        Group.1        x
3 North Central 0.700000
1     Northeast 1.000000
4          West 1.023077
2         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 plots
library(plotrix)#需要加载plotrix包
slices <- c(10, 12,4, 16, 8) 
lbls <- c("US", "UK", "Australia", "Germany", "France")   
fan.plot(slices, labels = lbls, main="Fan Plot")#绘制扇图

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

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值