1. 程式人生 > >R語言boxplot繪圖函數

R語言boxplot繪圖函數

情況 標簽 name 繪圖 效果圖 alt .cn r語 運行

boxplot 用於繪制箱線圖,我們都知道boxplot 用於展示一組數據的總體分布,在R語言中,支持兩種輸入數據的方式

第一種:x , 這個參數指定用於繪制箱線圖所用的數據,是一個向量

代碼示例:

boxplot(1:100)

效果圖如下:

技術分享

第二種, 通多formala 和 data 兩個參數指定,適合展示多組數據的分布

代碼示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), each = 100)))
boxplot( value ~ group, dataset)

效果圖如下:

技術分享

下面詳細解釋幾個常用的參數:

1)widh : 控制箱體的寬度,當圖中有多個箱子時才會發揮作用,其值為長度和箱體個數相同的向量,指定了不同箱體的相對寬度

代碼示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), each = 100)))
boxplot( value ~ group, dataset, width = c(1, 2))

效果圖如下:

技術分享

從圖中可以看出,第二個箱子的寬度是第一個箱子的兩倍

2) varwidth : 邏輯值,控制箱體的寬度, 只有圖中有多個箱體時才發揮作用,默認為FALSE, 所有箱體的寬度相同,當其值為TRUE時,代表每個箱體的樣本量作為其相對寬度

代碼示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(160, 40))))
boxplot( value ~ group, dataset, varwidth = T)

效果圖如下:

技術分享

從圖中可以看出,兩個箱體的寬度不同,因為兩組數據的樣本量不同;

3)notch : 邏輯值,

代碼示例:

par(mfrow = c(1, 2))
boxplot(1:100, notch = T, main = "notch = T")
boxplot(1:100, notch = F, main = "notch = F")

效果圖如下:

技術分享

4)col : 箱體的填充色

代碼示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(160, 40))))
boxplot( value ~ group, dataset, col = c("green", "red"))

效果圖如下:

技術分享

5) border : 箱體中線條的顏色,默認為黑色

代碼示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(160, 40))))
boxplot( value ~ group, dataset,  border = c("red", "green"))

效果圖如下:

技術分享

6)names: 每個箱體下面的標簽

代碼示例:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(160, 40))))
boxplot( value ~ group, dataset,  names = c("red", "green"))

效果圖如下:

技術分享

下面我們討論下,箱線圖中箱體的位置是如何決定的?

默認情況下每個箱體的中心點和箱體的位置是一定的,比如第二個箱體對應的中心點的x坐標就是2

默認情況下每個箱體的寬度是多少呢?

當圖中只有一個箱體時,看下面代碼的運行結果:

boxplot(1:100)
abline(v = 0.8, lty = 2)
abline(v = 1.2, lty = 2)
axis(side = 1)

結果如下:

技術分享

從圖中可以看出,因為只有一個箱體,所以中心點為1, 兩邊的寬度各位0.2, 所以左邊的x軸坐標是0.8, 右邊的x軸坐標為1.2

當圖中有多個箱體時,看下面代碼的運行結果:

dataset <- data.frame(value = rep(1:100, times = 2), group = factor(rep(c("A", "B"), times = c(100, 100))))
boxplot( value ~ group, dataset)
abline(v = 0.6, lty = 2)
abline(v = 1.4, lty = 2)

abline(v = 1.6, lty = 2)
abline(v = 2.4, lty = 2)

結果如下:

技術分享

從圖中我們可以發現,每個箱體的寬度為0.8

R語言boxplot繪圖函數