本文主要使用R语言介绍绘制一组多变量数据的箱线图及小提琴图。
一、图形介绍
(一)箱线图介绍
箱线图又称盒须图、盒式图或箱线图,用于展示连续型变量的五数(最大值、最小值、中位数及上下四分位数)。此外,箱线图还能够显示出可能的离群点(即异常值)的分布(范围为±1.5*IQR以外的值,IQR为四分位距,即上四分位数和下四分位数)。
(二)小提琴图介绍
小提琴图 (Violin Plot)是箱形图和核密度图的结合,主要用来显示数据的分布形状。
箱线图和小提琴的示意如下:


二、演示数据
本文演示数据为河南省2014-2019年各地级市GDP总量(未包含省直管县),数据来源于河南省历年统计年鉴,数据名称保存为HNGDP.xlsx。数据分布如下图所示:

三、图形绘制
#step1:加载相关包,如果没有相关包需要先进行安装
library(xlsx)
library(vioplot)
#step2:读取数据
HN.GDP <- read_excel("HNGDP.xlsx", 1)
names(HN.GDP)#查看数据列名
#step3:进行绘图
#demo1:绘制一个变量的箱线图和一个变量的小提琴图
boxplot(HN.GDP$`2014年`)
vioplot(HN.GDP$`2014年`)

#demo2:绘制多个变量的箱线图(并对标题、颜色、数值等进行修饰)
boxplot(HN.GDP$`2014年`, HN.GDP$`2015年`,HN.GDP$`2016年`, HN.GDP$`2017年`,HN.GDP$`2018年`, HN.GDP$`2019年`,
names = c("2014年", "2015年", "2016年", "2017年", "2018年", "2019年"),
main = "河南省2014-2019年GDP箱线图", xlab = "年份", ylab = "GDP(亿元)",
col=rainbow(7))
#相关说明:首先选择要作图的变量,names函数设置对应的x轴刻度名称,main表示主标题,xlab表示x轴标题,ylab表示y轴标题,col函数表示颜色的设置,此外为彩虹色,rainbow中的数字可以根据变量的个数进行更改,下同。
#demo3:绘制多个变量的小提琴图(并对标题、颜色、数值等进行修饰)
vioplot(HN.GDP$`2014年`, HN.GDP$`2015年`,HN.GDP$`2016年`, HN.GDP$`2017年`,HN.GDP$`2018年`, HN.GDP$`2019年`,
names = c("2014年", "2015年", "2016年", "2017年", "2018年", "2019年"),
main = "河南省2014-2019年GDP小提琴图", xlab = "年份", ylab = "GDP(亿元)",
col=rainbow(7),
rectCol="grey", colMed="black" )
#相关说明:rectCol表示盒型范围颜色,范围为下四分位点到上四分位点;colMed表示中位数点的颜色。
四、其他操作。
(一)对变量取对数。可通过在boxplot函数中的操作为加入log = "y",在vioplot中的操作为加入ylog = TRUE。效果如下图所示:

(二)绘制水平形式图。通过加入horizontal = TRUE,来进行水平放置,效果如下图所示:

(三)自定义颜色。在颜色的操作上,可通过在函数中加入col = "pink"来进行指定单一颜色,效果如下图所示:

此外,也可以通过向量的形式来指定多种颜色,如在函数中加入col = c('pink', 'lightblue', 'lightgreen', "yellow", "pink", "black"),效果如下图所示:

本文到此结束,感兴趣小伙伴可通过官方帮助文档进一步了解。




