神铸利刃·装备养成活动门户

【R语言】云雨图

云雨图可以看成核密度估计曲线图、箱型图和抖动散点图的组合图表。

示例图如下:

代码如下:

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()

#转换角度,改成横向的云雨图

参考:R语言教程|如何绘制云雨图? - 知乎 (zhihu.com)