R語言barplot繪圖函數


barplot 函數用於繪制柱狀圖,下面對其常用的參數進行一個詳細的解釋:

1)height : 高度,通過這個參數可以指定要畫多少個柱子以及每個柱子的高度,其值有兩種格式,

第一種 :向量 vector, 此時會根據向量的長度確定圖中有多少個柱子,向量中的每個值就是柱子的高度

代碼示例:

barplot(height = 1:10)

效果圖如下:

從圖中可以看出,共有10個柱子,柱子的高度為1到10,和height 參數的向量保持一致;

第二種:矩陣,matrix, 此時用於畫堆積柱狀圖

代碼示例:

data <- cbind(a = 1:4, b = 1:4)
barplot(data)

效果圖如下:

從圖中可以看出,輸入的矩陣data一共有a和b兩列,所以圖中只有兩個柱子,矩陣有4行,所以在每個柱子又由4個小的柱子堆積起來,所以矩陣常用來繪制堆積柱狀圖

需要注意的是,當輸入參數為矩陣時,默認是堆積柱狀圖,這種默認行為其實是通過 beside 參數進行控制,beside 默認值為 FALSE, 當為TRUE 時,我們看下效果:

代碼示例:

data <- cbind(a = 1:4, b = 1:4)
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 <- c(1:3)
names(height) <- c("A", "B", "C")
barplot(height)

data <- cbind("A" = 1:4, "B" = 1:4)
barplot(data)

效果圖如下:

 

上面的默認用法,names.arg 參數的主要用途是當輸入的height 缺少對應的屬性時,自己手工賦值,或者對已有的屬性不滿意,重新賦值

代碼示例:

par(mfrow = c(1, 2))
height <- c(1:3)
names(height) <- c("A", "B", "C")
barplot(height, names.arg = c("A1", "A2", "A3"))

data <- cbind("A" = 1:4, "B" = 1:4)
barplot(data, names.arg = c("D", "E"))

效果圖如下:

 

5) legned.text : 圖例的文字說明, 只有當height參數的值是matrix 時,才起作用,默認顯示的是matrix的rownames 屬性,其值有兩種指定形式,

第一種:邏輯值,是否需要顯示圖例,默認為FALSE

代碼示例:

data <- cbind(a = 1:4, b = 1:4)
rownames(data) <- c("A", "B", "C", "D")
barplot(data, legend.text = TRUE)

效果圖如下:

第二種, 指定圖例中的文字內容,相當於修改了matrix的 rownames 屬性

代碼示例:

data <- cbind(a = 1:4, b = 1:4)
rownames(data) <- c("A", "B", "C", "D")
barplot(data, legend.text = c("E", "F", "G", "H"))

效果圖如下:

 

從上面兩張圖可以看出來,雖然可以通過這種方式顯示圖例,但是圖里的位置都是固定在了右上角,會出現和柱子重疊的情況,最佳的顯示辦法還是單獨調用legend 函數,添加圖例;

6)beside: 之前提到過的,控制group bar的排列方式, 默認FALSE, 堆積排列,TRUE 代表水平排列

代碼示例:

par(mfrow = c(1, 2))
data <- cbind(a = 1:4, b = 1:4)
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 <- cbind(a = 1:4, b = 1:4)
barplot(data, axes = F, main = "axes = F")
barplot(data, axes = T, main = "axes = T")

效果圖如下:

12)axisnames : 控制是否顯示柱子的標簽

代碼示例:

par(mfrow = c(1, 2))
data <- cbind(a = 1:4, b = 1:4)
barplot(data, axisnames = F, main = "axisnames = F")
barplot(data, axisnames = T, main = "axisnames = T")

 效果圖如下:

 

 13)offset : 設置柱子的起始位置在y軸上的位置, 默認值為0

代碼示例:

par(mfrow = c(1, 3))
data <- cbind(a = 1:4, b = 1:4)
barplot(data, offset = 0, main = "offset = 0")
barplot(data, offset = 1, main = "offset = 1")
barplot(data, offset = 2, main = "offset = 2")

效果圖如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM