条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形。它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值。条形图横轴上的数据是离散而非连续的。条形图可以横置或纵置。
在实际中,条形图主要有简单条形图,组合条形图和堆叠条形图。
在R语言的基础包中可以使用barplot()函数来绘制条形图。
R语言中barplot()函数的基本语法格式如下:
barplot(height, width = 1, space = NULL,
names.arg = NULL, legend.text = NULL, beside = FALSE,
horiz = FALSE, density = NULL, angle = 45,
col = NULL, border = par("fg"),
main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
xlim = NULL, ylim = NULL, xpd = TRUE, log = "",
axes = TRUE, axisnames = TRUE,
cex.axis = par("cex.axis"), cex.names = par("cex.axis"),
inside = TRUE, plot = TRUE, axis.lty = 0, offset = 0,
add = FALSE, args.legend = NULL, ...)
主要参数的含义如下:
height:向量或矩阵,用来构成条形图中各条的数值。
width : 可选参数,用于指定条的宽度;给定单个值时,不起作用。
space :每个条之间的间距
names.arg:位于条低端的文字标签。
legend.text:图例说明文字,height为矩阵时有效。
beside: 逻辑值,为FALSE时绘制堆叠图,为TRUE时绘制分组图。
horiz: 逻辑值,为FALSE时,绘制垂直条形图,为TRUE时绘制水平条形图。
density:一个向量值。当指定该值时,条将以斜线填充。即每英寸斜线的密度。
angle:以逆时针方向给出的阴影线的角度。
col:条的填充色。
border:条的边框颜色,如设置为TRUE时,边框颜色将于阴影线的颜色相同。
main:用于指定绘图的主标题。
sub:用于指定绘图的次标题。
xlab, ylab :用于指定x轴和y轴的标签。
xlim, ylim:分别用于指定x轴和y轴的取值范围。
下面举例子说明该函数的具体使用方法:
(1)绘制简单的条形图
math <- c(78, 92, 89, 61, 95)
barplot(math)
结果如下图所示:
(2)添加x轴上的分类标签
math <- c(78, 92, 89, 61, 95)
names<-c("小刚", "小明", "小花", "小芳", "小丽")
barplot(math,names.arg=names)
结果如下图所示:
(3)指定填充色,边框色,标题
math <- c(78, 92, 89, 61, 95)
names<-c("小刚", "小明", "小花", "小芳", "小丽")
barplot(math,names.arg=names,border="green",main="成绩",
col=c("red","orange","lightblue","yellow","lightgreen"))
运行结果如下图所示:
(4)绘制堆叠条形图
math <- c(78, 92, 89, 61, 95)
english <- c(90, 89, 95, 70, 98)
grade <- matrix(c(math,english),2,5)
#names<-c("小刚", "小明", "小花", "小芳", "小丽")
barplot(grade,border="green",names.arg=names,
main="成绩",xlab="姓名",ylab="成绩",legend=c("数学","英语"))
绘图结果如下图所示:
(5)绘制簇状(分组)条形图
math <- c(78, 92, 89, 61, 95)
english <- c(90, 89, 95, 70, 98)
grade <- matrix(c(math,english),2,5)
#names<-c("小刚", "小明", "小花", "小芳", "小丽")
barplot(grade,names.arg=names,beside=TRUE,
main="成绩",xlab="姓名",ylab="成绩",col=rainbow(10))
绘图结果如下图所示:
rainbow函数用来生成指定n种连续颜色的向量。
新闻热点
疑难解答