统计学上把取值范围是有限个值或是一个数列构成的变量称为离散变量,其中表示分类情况的离散变量又称为分类变量
> 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)
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")#绘制扇图