Usage
barplot(height, ...)
height 为绘制条形图的向量或值矩阵。如果高度是一个向量,则绘图由一系列矩形条组成,其高度由向量中的值给出。如果“高度”为矩阵且“旁边”为FALSE,则绘图的每个条形对应一列高度,该列中的值表示组成条形的堆叠子条形的高度。如果“高度”为矩阵且“旁边”为真,则每列中的值将并置而不是堆叠。
1. 简单的条形图
# 向量的条形图
barplot(height = 1:10)
height <- c(1:3)
names(height) <- c("A", "B", "C")
barplot(height)
# 修改条形标签名
barplot(height,names.arg=paste("group",c(1:3)))
# install.packages("vcd")
library(vcd)
counts <- table(Arthritis$Improved)
class(counts)
barplot(counts)
# 矩阵的条形图
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3)
barplot(M)
2. 调整标签名文字大小
height=seq(1,3)
barplot(height,names.arg=paste("group",c(1:3)),cex.names=0.8)
3. 加颜色
barplot(1:4, col = rainbow(4))
barplot(1:4, col = 'red')
4. 设置柱子边框
barplot(1:4, col = rainbow(4), border = NA, main = "border = NA")
barplot(1:4, col = rainbow(4), border = 'black')
默认为 black, 当border = NA时,表示没有边框
5. 修改图例
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3)
rownames(M) <- c("A", "B")
colnames(M) <-c( "C", "D","E")
barplot(M, legend.text = TRUE, args.legend = list(x = "topleft"))
legend.text : 图例的文字说明, 只有当height参数的值是matrix 时,才起作用,默认显示的是matrix的rownames 属性。
6. 调整宽度
barplot(c(1,2,3),width=c(1,2,3))
barplot(1:5, width = 5:1)
barplot(height = cbind(x = c(465, 91) / 465 * 100,
y = c(840, 200) / 840 * 100,
z = c(37, 17) / 37 * 100),
width = c(465, 840, 37))
7. 调整间隙
barplot(1:3, space = c(0.1, 0.2, 0.8))
9. 水平条形图
library(vcd)
counts <- table(Arthritis$Improved)
barplot(counts,main="Horizontal Bar plot",
xlab="Frequency",ylab="Improvement",
horiz=TRUE)
# plot函数也可以做柱状图
plot(Arthritis$Improved,main="Horizontal Bar plot",
xlab="Frequency",ylab="Improvement",
horiz=TRUE)
# Arthritis$Improved 因子
10. 堆砌条形图
library(vcd)
counts <- table(Arthritis$Improved,Arthritis$Treatment)
barplot(counts,main="Stacked Bar plot",
xlab="Treatment",ylab="Frequency",
#col=c('red','yellow','green'),
legend=rownames(counts))
11. 分组条形图
# 设置 beside=TRUE
barplot(counts,main="Grouped Bar plot",
xlab="Treatment",ylab="Frequency",
col=c('red','yellow','green'),
legend=rownames(counts),beside=TRUE)
12. 均值、中位数、标准差等的条形图
library(vcd)
means <- aggregate(Arthritis$Age,by=list(Arthritis$Treatment),FUN=sd)
means <- aggregate(Arthritis$Age,by=list(Arthritis$Treatment),FUN=mean)
#参数names.arg允许你指定一个字符向量作为条形的标签名
barplot(means$x,names.arg=means$Group.1)
title("Mean age of groups")