云雨图可以看成核密度估计曲线图、箱型图和抖动散点图的组合图表。
示例图如下:
代码如下:
library(ggplot2)
library(gghalves)
mycolor<-c("#9DCD82","#F8B62D","#F2997A")
data<-iris
head(data) #预览数据前六行
ggplot(data,aes(x=Species,y=Sepal.Width,fill=Species,color=Species)) +
# 将 `Species` 列作为 x 轴,`Sepal.Width` 列作为 y 轴,根据 `Species` 列进行颜色填充和着色
scale_color_manual(values=rev(mycolor)) +
scale_fill_manual(values=rev(mycolor)) +
geom_half_violin(position=position_nudge(x=0.1,y=0),side='R',adjust=1.2,trim=F,color=NA,alpha=0.8) +
#position:位置调整,这里将其向右水平移动0.1;
#side:显示哪一侧, "I"代表左侧,"R"代表右侧,默认"I";
#adjust:调整带宽,这里设为1.2使宽带略变平滑;
#trim:小提琴图尾部的数据修整,默认为"T",表示将尾部修整到数据范围;"F"表示不修剪尾部;
# color: 小提琴图的边界颜色设为透明,颜色为NA
# alpha: 设置透明度为0.8
geom_point(aes(x = as.numeric(Species)-0.1,#散点位置向左平移0.1
y = Sepal.Width,
color = Species),
position = position_jitter(width =0.03),size = 3, shape = 20) +
# 添加散点图层,其中各参数的含义如下:
# x: 使用 `Species` 列的数值减去0.1,向左平移0.1
# y: 使用 `Sepal.Width` 列的数据
# color: 根据 `Species` 列着色
# position: 使用 jitter 进行位置微调,width = 0.03,增加一些随机性,防止数据点完全重叠
# size: 设置点的大小为0.2
# shape: 设置点的形状为20(实心圆)
geom_boxplot(outlier.shape = NA, #隐藏离群点;
width =0.1,
alpha=0.7)# +
# coord_flip()
#转换角度,改成横向的云雨图