條形圖(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種連續顏色的向量。
新聞熱點
疑難解答