大家可能在平时的文献阅读很少会看到小提琴图,因为现在小提琴图还不是很普遍,但是在一些高分论文我们会看到漂亮的小提琴图,如:
这篇文章2016年发表在Nature medicine(IF=30.64)上,文章链接:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4938719/pdf/nihms786454.pdf
小提琴图是一种用来描述定量数据的分布的统计图,多个小提琴图放在一起,可以直观地比较数据分布的差别。
这里介绍用R语言画小提琴图。R有两个包可以画小提琴图,分别是vioplot包和ggplot2包,下面给大家介绍用vioplot包画小提琴图。
1. 安装并加载包:
install.packages(“vioplot”) #如果已经安装了就不用再安装了
library(vioplot)
2. 读取SPSS数据
install.packages(“Hmisc”)
library(Hmisc)
data=spss.get("F:\\data\\baby weight.sav")
读取数据后先查看一下数据:
View(data)
这是一个婴儿出生体重的数据,共有8个变量,367个观测。今天我们要观察母亲不同吸烟状态(smoke)的婴儿出生体重(babyweight)的分布,查看这两个数据:
table(data$smoke)
母亲吸烟状态是分类变量,0:从不吸烟 1:怀孕时仍在吸烟 2:怀孕期间或之前戒烟
range(data$babyweight)
Babyweight是连续性变量,范围是71-173,单位是盎司
3. 画图
x1=data$babyweight[data$smoke==0] # 让x1等于数据中smoke=0的babyweight的变量值,以便后面调用
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"))
当然了,你也可以用调色板的颜色,代码如下:
vioplot(x1,x2,x3,names=c("never smoking","still smoking","quit smoking"),col=c("#9999FF","#CC99FF","#FF99FF"))
4. 给图加上标题
title("Violin Plot of baby weight on smoke")
5. 图形解读:
1表示中位数,2表示上四分位数,3表示下四分位数。
图形的琴体,展示的是频率分布,它越宽,表示某个取值附近频率越大。例如never smoking这组,在中位数附近频率最大,而quit smoking则在略大于中位数的取值频率最大。琴体较窄的部分,频率较小,一般都是接近最小值和最大值的两端。另外,还可以看到母亲怀孕时仍在吸烟这组的婴儿出生体重的中位数比其他两组低, 但是差异是否有统计学意义,还要作统计推断才知道。
欢迎大家关注R语言与SPSS学习笔记公众号