大家可能在平時的文獻閱讀很少會看到小提琴圖,因為現(xiàn)在小提琴圖還不是很普遍,但是在一些高分論文我們會看到漂亮的小提琴圖,如:

這篇文章2016年發(fā)表在Nature medicine(IF=30.64)上,文章鏈接:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4938719/pdf/nihms786454.pdf
小提琴圖是一種用來描述定量數(shù)據(jù)的分布的統(tǒng)計圖,多個小提琴圖放在一起,可以直觀地比較數(shù)據(jù)分布的差別。
這里介紹用R語言畫小提琴圖。R有兩個包可以畫小提琴圖,分別是vioplot包和ggplot2包,下面給大家介紹用vioplot包畫小提琴圖。
1. 安裝并加載包:
install.packages(“vioplot”) #如果已經(jīng)安裝了就不用再安裝了?
library(vioplot)
2. 讀取SPSS數(shù)據(jù)
install.packages(“Hmisc”)
library(Hmisc)?
data=spss.get("F:\\data\\baby weight.sav")
讀取數(shù)據(jù)后先查看一下數(shù)據(jù):
?View(data)

這是一個嬰兒出生體重的數(shù)據(jù),共有8個變量,367個觀測。今天我們要觀察母親不同吸煙狀態(tài)(smoke)的嬰兒出生體重(babyweight)的分布,查看這兩個數(shù)據(jù):
table(data$smoke)

母親吸煙狀態(tài)是分類變量,0:從不吸煙 1:懷孕時仍在吸煙 2:懷孕期間或之前戒煙
range(data$babyweight)

Babyweight是連續(xù)性變量,范圍是71-173,單位是盎司
3. 畫圖
x1=data$babyweight[data$smoke==0] # 讓x1等于數(shù)據(jù)中smoke=0的babyweight的變量值,以便后面調(diào)用?
x2=data$babyweight[data$smoke==1] x3=data$babyweight[data$smoke==2]?
vioplot(x1,x2,x3,names=c("never smoking","still smoking","quit smoking"),col="gold") #如果您想要其他不同的顏色,可更改col=”其他顏色”,如col=”green”等

其他顏色:
vioplot(x1,x2,x3,names=c("never smoking","still smoking","quit smoking"),col=c("red","gold","blue"))

當(dāng)然了,你也可以用調(diào)色板的顏色,代碼如下:
vioplot(x1,x2,x3,names=c("never smoking","still smoking","quit smoking"),col=c("#9999FF","#CC99FF","#FF99FF"))

4. 給圖加上標(biāo)題
title("Violin Plot of baby weight on smoke")
5. 圖形解讀:

1表示中位數(shù),2表示上四分位數(shù),3表示下四分位數(shù)。
圖形的琴體,展示的是頻率分布,它越寬,表示某個取值附近頻率越大。例如never smoking這組,在中位數(shù)附近頻率最大,而quit smoking則在略大于中位數(shù)的取值頻率最大。琴體較窄的部分,頻率較小,一般都是接近最小值和最大值的兩端。另外,還可以看到母親懷孕時仍在吸煙這組的嬰兒出生體重的中位數(shù)比其他兩組低, 但是差異是否有統(tǒng)計學(xué)意義,還要作統(tǒng)計推斷才知道。
歡迎大家關(guān)注R語言與SPSS學(xué)習(xí)筆記公眾號