主要從如何看圖、用圖與作圖三個(gè)方面來對(duì)箱線圖進(jìn)行理解和總結(jié)。 1、看圖箱線圖概述圖1 箱線圖概述圖2 如圖所示,箱線圖是將一組數(shù)據(jù)按照大小順序排列后進(jìn)行繪制的,包含6個(gè)數(shù)據(jù)節(jié)點(diǎn),分別表示出數(shù)據(jù)的上邊緣、上四分位數(shù)點(diǎn)Q3(數(shù)據(jù)從小到大排列后處在75%位置上的數(shù)據(jù))、中位數(shù)、下四分位數(shù)Q1(數(shù)據(jù)從小到大排列后處在25%位置上的數(shù)據(jù))、下邊緣和異常值。由此,箱線圖很形象地分為中心、延伸以及分布狀態(tài)的全部范圍。 異常值的篩選是根據(jù)數(shù)值與外限和內(nèi)限的位置差異來進(jìn)行的。內(nèi)限即異常值截?cái)帱c(diǎn)為Q3+1.5IQR和Q1-1.5IQR,外限為Q3+3IQR和Q1-3IQR。其中IQR=Q3-Q1,為四分位距。處在內(nèi)限以外位置的點(diǎn)表示的數(shù)據(jù)都是異常值,其中在內(nèi)限與外限之間的異常值為溫和異常值,在外限以外的為極端異常值。軟件繪圖中一般不會(huì)標(biāo)出內(nèi)限和外限。 2、用圖2、1 可以用于反映數(shù)據(jù)的形狀除須以外,箱子包含了50%的數(shù)據(jù),因此,箱子的寬度在一定程度上反映了數(shù)據(jù)的波動(dòng)程度,箱子越扁說明數(shù)據(jù)越集中,須越短也說明數(shù)據(jù)越集中。 2、2 可以用于反映數(shù)據(jù)的偏態(tài)中位數(shù)如果偏離上下四分位數(shù)的中心位置,分布的偏態(tài)性就越強(qiáng)。當(dāng)中位數(shù)靠近上四分位點(diǎn)時(shí),說明下四分位點(diǎn)與中位數(shù)之間的數(shù)據(jù)變化幅度大,中位數(shù)與上四分位點(diǎn)之間的數(shù)據(jù)變化幅度??;當(dāng)中位數(shù)靠近下四分位點(diǎn)時(shí),則反之。 2、3 可以用于表示數(shù)據(jù)的變化趨勢(shì)或者進(jìn)行數(shù)據(jù)之間比較將多個(gè)箱線并行排列,可以看出數(shù)據(jù)整體的變化趨勢(shì)。如下圖中可以很明顯的看出60天向100天過渡的過程中,長度的總體態(tài)勢(shì)是逐漸增長的,但是113天卻往下掉了。 boxplot of length.jpeg 同時(shí)也將幾批數(shù)據(jù)的箱線圖并行排列后,這幾批數(shù)據(jù)的中位數(shù)、尾長、異常值和分布區(qū)間等信息一目了然,可以進(jìn)行粗略的比較,如下圖所示。 并行排列幾批數(shù)據(jù)后繪制成的箱線圖 2、4 可以用于體現(xiàn)與篩選數(shù)據(jù)的異常值異常值的存在會(huì)對(duì)數(shù)據(jù)的計(jì)算分析過程產(chǎn)生影響,因此如果能體現(xiàn)與篩選異常值,分析其產(chǎn)生的原因,就可以發(fā)現(xiàn)問題并進(jìn)而進(jìn)行改進(jìn)。識(shí)別異常值的經(jīng)典方法中3σ法則和z分?jǐn)?shù)法都是以數(shù)據(jù)服從正態(tài)分布為前提進(jìn)行篩選的,而箱線圖的繪制是依靠實(shí)際數(shù)據(jù),不需事先假定數(shù)據(jù)服從的分布形式,同時(shí)因?yàn)樗姆治粩?shù)具有一定的耐抗性,所以利用箱線圖識(shí)別異常值的結(jié)果會(huì)比較客觀。 以上部分參考自https://www.jianshu.com/p/5b3bec6d38ed 3、作圖箱線圖的數(shù)據(jù)格式通常為兩列,一列為類型變量,表示所屬類別;一類為連續(xù)型數(shù)字變量,表示數(shù)值。通過這樣的兩列繪制出來的箱線圖稱為并列箱線圖。而在某些情況中,需要繪制分組的箱線圖進(jìn)行比較,這樣子就需要三個(gè)變量,即三列,包括兩列類型變量和一列連續(xù)型的數(shù)字變量。 并列型箱線圖 并列型箱線圖的數(shù)據(jù) 分組型箱線圖 分組型箱線圖的數(shù)據(jù) 3、1 并列型箱線圖作圖命令格式為 用fill分類完以后會(huì)自動(dòng)填充顏色,當(dāng)然fill=也可加具體顏色名或顏色代碼用于統(tǒng)一填充顏色,若不加fill項(xiàng),則會(huì)默認(rèn)黑白色。 另一種格式是 兩種格式的效果是一樣的。 3、2 分組型箱線圖作圖因?yàn)椴⒘邢渚€圖中只有兩列,所以其中一列必須同時(shí)是x軸(或y軸)和fill列,但是分組箱線圖中有三列,所以其中一列為x軸,一列為y軸,一列為fill列,命令格式與并列箱線圖相同。 分面前 因?yàn)楦鹘M之間尺度相差過大而被拉扯,這種情況下需要用到facet函數(shù)進(jìn)行分面。 分面后 其中scales=“free”是使得分面后的各面有適應(yīng)其圖形的坐標(biāo)。如果不加scales=“free”,則只是分面而不改變坐標(biāo)軸。如下圖所示: 無scales=“free”分面后 這種尺度過于拉大導(dǎo)致無法看圖的情況其實(shí)在并列型箱線圖中也存在,但是這種分面的方法更適用于分組型的箱線圖。 當(dāng)然也可以把同一組的分到一起 同組同一顏色 3、3 自定義坐標(biāo)軸排序在箱線圖繪制過程中,系統(tǒng)會(huì)對(duì)各列進(jìn)行自動(dòng)排序,有時(shí)候往往不是我們想要的順序。如下圖中,理想順序是60、70、80、90、100、113、CK,但實(shí)際上順序并不一樣。 系統(tǒng)讀取后的坐標(biāo)軸排序 這種情況下需要使用命scale_x_discrete命令來進(jìn)行調(diào)整。 同時(shí)也可以用這個(gè)命令摘出部分想要的子集。 3、4 修改顏色箱線圖的繪制中需要調(diào)整各個(gè)箱線的顏色。 當(dāng)然,fill和color也可以同時(shí)使用 color與fill同時(shí)調(diào)色后 用填充色將不同箱線圖表現(xiàn)出來以后,若要調(diào)整填充色,可以使用RColorBrewer調(diào)色盤進(jìn)行調(diào)色,需加上scale_fill_brewer() 括號(hào)中的Set1是具體的該調(diào)色盤中的名稱。調(diào)色盤還有以下幾種: 調(diào)色盤 調(diào)色盤的顏色種類為8-12種,但是箱線圖繪制過程中出現(xiàn)的箱線一般不會(huì)超過12個(gè),所以對(duì)繪制并無太大影響。 括號(hào)中可以填start或end,若start=1,則箱線顏色從左往右逐漸加深;若end=1,則箱線顏色從左往右逐漸變淺。start和end的取值范圍皆為0-1。 使用灰度調(diào)色盤后 3、5 添加槽口在geom_boxplot()括號(hào)中加入notch=TRUE即可在箱子上生成槽口,即 添加槽口后 3、6 添加均值標(biāo)記箱線中的均值標(biāo)記常以鉆石來表示,所以命令為 添加均值標(biāo)記后 3、7 添加最大值與最小值線用基礎(chǔ)R包繪圖繪制的箱線圖中具有最大最小值線(即概述圖中的上邊緣和下邊緣),但是用ggplot2繪制的箱線圖中,是沒有最大最小值線的。 用基礎(chǔ)R包繪制的箱線圖 想要使ggplot2所繪制的箱線圖帶有最大最小值線,可用stat_boxplot命令,完整如下: 其中aes是為最大最小值先添加顏色的,可以去掉,去掉即為黑色。 要注意的是,因?yàn)間gplot2的規(guī)則是圖層疊加,所以如果是先作箱線圖,即先輸入geom_boxplot(),再輸入stat_boxplot(),會(huì)導(dǎo)致箱線圖中出現(xiàn)十字。 箱線上出現(xiàn)十字 所以輸入命令時(shí),必須先輸入stat_boxplot(),再輸入geom_boxplot()。 3、8 離群點(diǎn)(異常值)關(guān)于離群點(diǎn)的參數(shù)有outlier開頭的多個(gè),如: 3、9 將箱線圖轉(zhuǎn)置添加 即可。效果圖如下: 轉(zhuǎn)置后的箱線圖 3、10 可變寬度箱線圖只能反映數(shù)據(jù)的整體態(tài)勢(shì),而不能反映數(shù)據(jù)的密度,但是如果數(shù)據(jù)密度越大,箱子的寬度也隨之增大,則可在一定程度上了解數(shù)據(jù)的密度。 使寬度可隨著數(shù)據(jù)密度成正相關(guān)變化 3、11 將散點(diǎn)在箱線中體現(xiàn)(1)在箱線圖中列出散點(diǎn)可以更直觀地看出數(shù)據(jù)在箱線中的分布。有四種方法。 第二種方法是使用geom_dotplot。相比于第一種方法,geom_dotplot畫出來的圖較為分散美觀且可以加入抖動(dòng)參數(shù)。 geom_dotplot作圖 命令如下例: dotplot的具體參數(shù)信息可以參考下面這個(gè)網(wǎng)址: 第三種方法,是使用ggpurb包進(jìn)行作圖。 使用ggpurb作圖 與dotplot對(duì)比可以看出,dotplot的散點(diǎn)只能隨著箱線作圖映射時(shí)fill或color進(jìn)行顏色改變,fill則為填充色,color則為輪廓色,兩者只能選擇其一,不能同時(shí)變色,這也導(dǎo)致了dotplot作出的圖中的散點(diǎn)與異常值點(diǎn)外觀上有區(qū)別。 還有一種方法是使用geom_jitter體現(xiàn)出抖動(dòng)的點(diǎn),例如: 使用geom_jitter后 此方法完美兼容本文中其他命令且不用擔(dān)心散點(diǎn)與異常值點(diǎn)的不協(xié)調(diào)不美觀,因此推薦使用第四種方法。 3、11 將散點(diǎn)在箱線中體現(xiàn)(2)可以使用ggExtra包中的ggMarginal()功能將箱線放在散點(diǎn)圖的周圍 ggMarginal中的fill與size都是設(shè)置散點(diǎn)圖周圍箱線的參數(shù)的。 ggMarginal作圖后 該方法不僅限于散點(diǎn)圖和箱線圖,也可用與直方圖、箱線圖、密度圖與其他圖的結(jié)合。 3、12 其他關(guān)于其他一些基本的參數(shù),如坐標(biāo)軸名稱,標(biāo)題名稱位置等,可用ggThemeAssist進(jìn)行傻瓜式調(diào)整。具體見https://mp.weixin.qq.com/s/NWXvuTNAgjW3_EzT5J01Zw 4、總結(jié)的總結(jié)下面是并列型箱線圖包含上述內(nèi)容的總命令,在實(shí)踐中為求方便的話可以復(fù)制粘貼后再根據(jù)自己的需要進(jìn)行刪除和修改。 下面是分組型箱線圖包含上述內(nèi)容的總命令,在實(shí)踐中為求方便的話可以復(fù)制粘貼后再根據(jù)自己的需要進(jìn)行刪除和修改。 如果想要嘗試,可以從https://pan.baidu.com/s/1PQWiOGjSzdyVMTsa1sGwWA 箱線圖能夠形象地體現(xiàn)數(shù)據(jù)的分布態(tài)勢(shì),但是在這同時(shí),也會(huì)掩蓋數(shù)據(jù)的密度分布,這也是箱線圖的缺點(diǎn)所在。因此才有了小提琴圖等。 這是對(duì)箱線圖繪制過程的初步總結(jié),包括了繪制簡單箱線圖的內(nèi)容。添加顯著性差異標(biāo)識(shí)、均值點(diǎn)連線、和其他圖聯(lián)動(dòng)等方面的內(nèi)容以后會(huì)繼續(xù)進(jìn)行補(bǔ)充。 |
|