R 2种方法绘制云雨图(半小提琴+箱线+散点)

方法1

library(ggplot2)
library(ggdist)
library(tidyquant)
#使用R自带数据进行展示
data <- iris
data$Species <- factor(data$Species, levels = c("virginica","versicolor","setosa"))

ggplot(data,aes(x=Species,   # 基础数据是一个名为data的数据框,x轴映射对象是Species列
                y=Sepal.Length,  # y轴映射对象是Sepal.Length列
                fill=Species,   # 颜色填充映射对象是Species列
                color=Species)) +  # 创建一个基础的ggplot对象,设置x轴为cyl(柱状各类别),y轴为hwy(公路里程),颜色(fill)也按照cyl柱状各类别进行设置
  ggdist::stat_halfeye(  # 使用ggdist包的stat_halfeye函数添加半暴雨到图中
    adjust = 0.5,  # 自定义带宽
    justification = -.2,  # 将geom移动到右侧
    .width = 0,  # 移除横条间隔
    point_colour = NA  # 点的颜色为空
  ) +
  geom_boxplot(  # 添加箱线图到图中
    width = .12,  # 箱线图的宽度
    outlier.color = NA,  # 移除离群值
    alpha = 0.5  # 不透明度为0.5
  ) +
  ggdist::stat_dots(  # 使用ggdist包的stat_dots函数添加点图到图中
    side = "left",  # 设置点图方向为左侧
    justification = 1.1,  # 将geom移动到左侧
    binwidth = .03  # 调整点的大小
  ) +
  scale_color_manual(values=c("#FAC794","#F58F96","#AB97E0"))+  # 手动调整点的颜色
  scale_fill_manual(values=c("#FAC794","#F58F96","#AB97E0"))+   # 手动调整填充颜色
  coord_flip()+  # 翻转坐标轴
  theme_bw()+   # 白色主题配色
  theme(panel.grid=element_blank())   # 去掉网格线

在这里插入图片描述

方法2

library(ggplot2)
library(gghalves)
#使用R自带数据进行展示
data <- iris
data$Species <- factor(data$Species, levels = c("virginica","versicolor","setosa"))

ggplot(data,aes(x=Species,   # 基础数据是一个名为data的数据框,x轴映射对象是Species列
                y=Sepal.Length,  # y轴映射对象是Sepal.Length列
                fill=Species,   # 颜色填充映射对象是Species列
                color=Species))+  # 点颜色映射对象也是Species列
  geom_half_violin(position=position_nudge(x=0.1, y=0),   # 设置半个小提琴图的位置(相对于默认位置的微调)
                   side='R',   # 设置小提琴图的一侧('R'表示右侧)
                   adjust=1.2,   # 调整小提琴图的宽度,默认值为1.0
                   trim=F,   # 设置是否修剪小提琴图的边界,默认为F(不修剪)
                   color=NA,   # 设置小提琴图的边线颜色(NA表示透明)
                   alpha=0.8) +  # 设置小提琴图的透明度(默认为1.0,完全不透明)
  geom_point(aes(x = as.numeric(Species)-0.1, y = Sepal.Length, color = Species),   # 绘制散点图
             position = position_jitter(width = 0.03),   # 设置散点的位置抖动(控制数据点的密度)
             size = 1.5,   # 设置散点的大小
             shape = 20) +  # 设置散点的形状(20表示圆形)
  
  geom_boxplot(outlier.shape = NA,   # 设置箱线图中离群值的形状(NA表示不显示离群值)
               width = 0.1,   # 设置箱线图的宽度
               alpha = 0.7) +  # 设置箱线图的透明度
  scale_color_manual(values=c("#FAC794","#F58F96","#AB97E0"))+  # 手动调整点的颜色
  scale_fill_manual(values=c("#FAC794","#F58F96","#AB97E0"))+   # 手动调整填充颜色
  coord_flip()+  # 翻转坐标轴
  theme_bw()+   # 白色主题配色
  theme(panel.grid=element_blank())   # 去掉网格线

在这里插入图片描述
来源参考如下,并进行一些修改
参考1
参考2

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值