您的位置:首頁>正文

R語言資料視覺化系列(4)箱線圖和小提琴圖(附詳細代碼)

本文希望教會大家運用R語言繪製箱線圖和小提琴圖。 小提琴圖能同時查看資料的分佈和描述性統計, 是一種非常實用的視覺化圖形。

箱線圖/盒須圖

繪製連續型變數常用的五個描述性統計量, 從下到上依次是:最小值, 下四分位數(25%分位數), 中位數(50%分位數), 上四分位數(75%分位數), 最大值。

箱線圖能夠顯示出可能的離群點, 即上下四分位數以外的點

箱線圖由boxplot(formula, data=dataframe)命令得到

formula表示一個公式, y~A, 將為類別變數A的每個值並列地生成數值型變數y的箱線圖

y~A*B, 將為類別變數A和B所有水準的組合生成數值型變數y的箱線圖

dataframe代表提供的資料

資料查看

利用自帶的資料集mtcars, 查看資料的頭幾行

head(mtcars)

資料集mtcars

簡單箱線圖

對mtcars的每加侖汽油行駛英里數mpg繪製箱線圖

boxplot(mtcars$mpg)

簡單箱線圖

並列箱線圖

對發動機的不同缸數cyl繪製並列箱線圖

boxplot(mpg~cyl,data=mtcars,main="並列箱線圖",xlab="發動機的缸數",ylab="每加侖汽油行駛英里數")

並列箱線圖

從圖中可以看出, 不同組之間的油耗差距是非常大的。 6缸車型的每加侖汽油行駛的英里數分佈較其他兩種車型均勻, 與6缸和8缸車型相比, 4缸車型的每加侖汽油行駛的英里數分佈最分散且呈正偏, 在8缸車型的分組還存在一個離群點。

凹槽箱線圖

notch=TRUE, 得到帶有凹槽的箱線圖, 在中位數處產生凹槽

varwidth=TRUE, 使箱線圖的寬度與它們對應的樣本數量成正比, 越寬代表樣本數量越多

boxplot(mpg~cyl,data=mtcars,notch=TRUE,varwidth=TRUE,col="red",main="凹槽箱線圖",xlab="發動機的缸數",ylab="每加侖汽油行駛英里數")

凹槽箱線圖

交叉因數箱線圖

創建變速箱am和氣缸數量cyl的交叉因數的箱線圖

boxplot(mpg~am*cyl,data=mtcars,varwidth=TRUE,col=c("gold","darkgreen"),main="交叉因數箱線圖",xlab="汽車類型",ylab="每加侖汽油行駛英里數")

交叉因數箱線圖

0.4 表示變速箱類型是0, 發動機缸數是4時, 每加侖汽油行駛英里數的分佈

1.4 表示變速箱類型是1, 發動機缸數是4時, 每加侖汽油行駛英里數的分佈

其他類似

結果表明, 油耗隨著缸數的減少而下降,

對於4缸和6缸車型, 標準變速箱(類型是1)的油耗更低, 但是對於8缸車型, 兩種變速箱的油耗似乎沒有太大差別;從箱線圖的寬度中也可以看出, 樣本中變速箱類型是0的8缸發動機汽車數量較多。

小提琴圖

小提琴圖是箱線圖和核密度圖的結合, 在縱軸展示了資料分佈的核密度估計曲線

使用vioplot包中的 vioplot( )函數繪製

vioplot(x1,x2,names=,col= )

其中x1,x2是要繪製的一個或者多個數值向量

names=" " 是標籤的名稱

col=" "用於指定小提琴圖的顏色

library(vioplot)#載入需要的包x1=mtcars$mpg[mtcars$cyl==4]x2=mtcars$mpg[mtcars$cyl==6]x3=mtcars$mpg[mtcars$cyl==8]vioplot(x1,x2,x3,names=c("4缸","6缸","8缸"),col="gold")title("每加侖汽油行駛英里數的小提琴圖")

小提琴圖

在小提琴圖中,白點是中位數,黑色盒子的範圍是上下四分位點,細黑線表示的須的範圍是最大和最小值

外部形狀即為分佈的核密度估計

小提琴圖

在小提琴圖中,白點是中位數,黑色盒子的範圍是上下四分位點,細黑線表示的須的範圍是最大和最小值

外部形狀即為分佈的核密度估計

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示