【R语言】--- 小提琴图

基本简介

小提琴图 (Violin Plot) 用于显示数据分布及其概率密度,该图类是箱型图和核密度图的结合,主要用来显示数据的分布状况。中间的黑色粗条表示四分位数范围,从其延伸的细黑线代表数据范围,两端为最大值和最小值,而白点则为中位数。

基本用法

vioplot包:vioplot()函数
ggplot2包:plot()函数

示例

vioplot包

vioplot(
  x, #数据矩阵
  ...,
  data = NULL, 
  range = 1.5,
  h = NULL,
  xlim = NULL,
  ylim = NULL,
  names = NULL,
  horizontal = FALSE,
  col = "grey50", #颜色
  border = par()$fg, #边界
  lty = 1, 
  lwd = 1
)
# 创建一个数据集
treatment <- c(rep("A", 40) , rep("B", 40) , rep("C", 40) )
value <- c( sample(2:5, 40 , replace=T) , sample(c(1:5,12:17), 40 , replace=T), sample(1:7, 40 , replace=T) )
data <- data.frame(treatment,value)
#绘图
with(data , vioplot( 
  value[treatment=="A"] , value[treatment=="B"], value[treatment=="C"],  
  col=rgb(0.1,0.4,0.7,0.7) , names=c("A","B","C") 
))

ggplot2包绘制

#加载包
{library(ggplot2)
library(dplyr)}
#创建数据集
data <- data.frame(
  name=c( rep("A",500), rep("B",500), rep("B",500), rep("C",20), rep('D', 100)  ),
  value=c( rnorm(500, 10, 5), rnorm(500, 13, 1), rnorm(500, 18, 1), rnorm(20, 25, 4), rnorm(100, 12, 1) )
)
#基本绘图
ggplot(data, aes(x=name, y=value, fill=name)) + # fill=name allow to automatically dedicate a color for each group
  geom_violin()+
  theme_bw()

#mpg数据集绘制
mpg$class = with(mpg, reorder(class, hwy, median))
mpg %>%
  ggplot( aes(x=class, y=hwy, fill=class)) + 
  geom_violin() +
  xlab("class") +
  theme(legend.position="none") +
  xlab("")+
  theme_bw()

参考文献

[1] https://www.r-graph-gallery.com/violin.html
[2] https://www.jianshu.com/p/e8e69c561f4f

你可能感兴趣的:(【R语言】--- 小提琴图)