barplot 函數用于繪制柱狀圖,下面對其常用的參數進行一個詳細的解釋:
1)height : 高度,通過這個參數可以指定要畫多少個柱子以及每個柱子的高度,其值有兩種格式,
第一種 :向量 vector, 此時會根據向量的長度确定圖中有多少個柱子,向量中的每個值就是柱子的高度
代碼示例:
barplot(height = 1:10)
效果圖如下:
從圖中可以看出,共有10個柱子,柱子的高度為1到10,和height 參數的向量保持一緻;
第二種:矩陣,matrix, 此時用于畫堆積柱狀圖
代碼示例:
data
barplot(data)
效果圖如下:
從圖中可以看出,輸入的矩陣data一共有a和b兩列,是以圖中隻有兩個柱子,矩陣有4行,是以在每個柱子又由4個小的柱子堆積起來,是以矩陣常用來繪制堆積柱狀圖
需要注意的是,當輸入參數為矩陣時,預設是堆積柱狀圖,這種預設行為其實是通過 beside 參數進行控制,beside 預設值為 FALSE, 當為TRUE 時,我們看下效果:
代碼示例:
data
barplot(data, beside = T)
效果圖如下:
從圖中可以看到,當設定besdie = TRUE 時,原本堆積在一起的柱子現在變成并列的了;
2)width: 寬度,控制每個柱子的寬度,預設值為1,值得注意的是,這個參數的值是可以循環使用的,當我們隻設定一個值時,會自動循環,生成長度和柱子數目相同的向量,效果就是所有柱子的寬度是一樣的,其實也可以指定多個值,使每個柱子的長度不一樣
代碼示例:
barplot(1:5, width = 5:1)
效果圖如下:
3)space:間隔,指定每個柱子左邊的空白區域的寬度,這個值為一個百分比,預設值為0.2, 實際的間隔 = 0.2 * 1(所有柱子的平均寬度) = 0.2; 這個參數的值和width 參數類似,可以隻設定一個值,也可以指定不同的柱子間隔不同;
代碼示例:
barplot(1:3, space = c(0.1, 0.2, 0.3))
效果圖如下:
4)names.arg : 每個柱子下面的标記,當height 為 vector 時,預設的标記為向量的names 屬性, 當height 為 matrix 是,預設為 matrix 的colnames 屬性
代碼示例:
par(mfrow = c(1, 2))
height
names(height)
barplot(height)
data
barplot(data)
效果圖如下:
上面的預設用法,names.arg 參數的主要用途是當輸入的height 缺少對應的屬性時,自己手工指派,或者對已有的屬性不滿意,重新指派
代碼示例:
par(mfrow = c(1, 2))
height
names(height)
barplot(height, names.arg = c("A1", "A2", "A3"))
data
barplot(data, names.arg = c("D", "E"))
效果圖如下:
5) legned.text : 圖例的文字說明, 隻有當height參數的值是matrix 時,才起作用,預設顯示的是matrix的rownames 屬性,其值有兩種指定形式,
第一種:邏輯值,是否需要顯示圖例,預設為FALSE
代碼示例:
data
rownames(data)
barplot(data, legend.text = TRUE)
效果圖如下:
第二種, 指定圖例中的文字内容,相當于修改了matrix的 rownames 屬性
代碼示例:
data
rownames(data)
barplot(data, legend.text = c("E", "F", "G", "H"))
效果圖如下:
從上面兩張圖可以看出來,雖然可以通過這種方式顯示圖例,但是圖裡的位置都是固定在了右上角,會出現和柱子重疊的情況,最佳的顯示辦法還是單獨調用legend 函數,添加圖例;
6)beside: 之前提到過的,控制group bar的排列方式, 預設FALSE, 堆積排列,TRUE 代表水準排列
代碼示例:
par(mfrow = c(1, 2))
data
barplot(data, main = "beside = F")
barplot(data, beside = T, main = "beside = T")
效果圖如下:
7) horiz : 邏輯值,預設FALSE , 當值為TRUE 時,将x軸和y軸轉置;
代碼示例:
par(mfrow = c(1, 2))
barplot(1:4, main = "horiz = F")
barplot(1:4, main = "horiz = T", horiz =T)
效果圖如下:
8)col : 柱子的填充色,預設為灰色
代碼示例:
barplot(1:4, col = "green")
效果圖如下:
除了設定col參數的值為一個外,還支援不同的柱子設定不同的顔色
代碼示例:
barplot(1:4, col = rainbow(4))
效果圖如下:
9) border : 柱子邊框的顔色, 預設為 black, 當border = NA時,表示沒有邊框
代碼示例:
barplot(1:4, col = rainbow(4), border = NA, main = "border = NA")
效果圖如下:
10)density 和 angle : 設定柱子用線條填充,density 控制線條的密度, angel 控制線條的角度
代碼示例:density 控制線條的密度
par(mfrow = c(1, 3))
barplot(rep(1,4), density = 1, main = "density = 1")
barplot(rep(1,4), density = 2, main = "density = 2")
barplot(rep(1,4), density = 3, main = "density = 3")
效果圖如下:
代碼示例:angle 控制線條的角度, 必須和density 參數搭配使用才能發揮作用
par(mfrow = c(1, 3))
barplot(rep(1,4), density = 2, angle = 45, main = "angle = 45")
barplot(rep(1,4), density = 2, angle = 90, main = "angle = 90")
barplot(rep(1,4), density = 2, angle = 180, main = "angle = 180")
效果圖如下:
11)axes :邏輯值,控制是否顯示軸線
代碼示例:
par(mfrow = c(1, 2))
data
barplot(data, axes = F, main = "axes = F")
barplot(data, axes = T, main = "axes = T")
效果圖如下:
12)axisnames : 控制是否顯示柱子的标簽
代碼示例:
par(mfrow = c(1, 2))
data
barplot(data, axisnames = F, main = "axisnames = F")
barplot(data, axisnames = T, main = "axisnames = T")
效果圖如下:
13)offset : 設定柱子的起始位置在y軸上的位置, 預設值為0
代碼示例:
par(mfrow = c(1, 3))
data
barplot(data, offset = 0, main = "offset = 0")
barplot(data, offset = 1, main = "offset = 1")
barplot(data, offset = 2, main = "offset = 2")
效果圖如下: