You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:ggplot2绘制4组小提琴图,2组带条纹2组无图案的问题

解决ggplot2中geom_violin_pattern部分小提琴无图案的问题

你的代码里直接将pattern = 'stripe'设为全局参数,导致所有小提琴都被应用条纹图案。要实现2个带条纹、2个无图案的效果,需要把pattern也纳入美学映射,再手动指定每个分组的图案类型。

修改后的代码示例

gg <- ggplot(AdPluslong, aes(Eval, Total.Score)) +
  geom_violin_pattern(
    aes(
      fill = as.factor(TypeGroupe),
      # 用Eval和TypeGroupe的交互项区分4个小提琴分组
      pattern = interaction(Eval, TypeGroupe)
    ),
    pattern_density = 0.001,
    pattern_angle = 45,
    colour = 'black'
  ) +
  scale_fill_manual(values = c("#E69F00", "#56B4E9", "#E69F00", "#56B4E9")) +
  # 为4个分组指定图案:2个条纹、2个无图案,顺序需和分组水平对应
  scale_pattern_manual(
    values = c("stripe", "none", "none", "stripe")
  )

关键调整说明

  1. 映射pattern到分组变量:将pattern放入aes()中,绑定到能区分4个小提琴的变量(这里用interaction(Eval, TypeGroupe)生成4个交互分组,如果你有直接的4组分类变量也可以直接用)。
  2. 手动指定图案:通过scale_pattern_manual()为每个分组设置图案,'stripe'对应条纹,'none'对应无图案。
  3. 匹配分组顺序:可以先运行levels(interaction(AdPluslong$Eval, AdPluslong$TypeGroupe))查看分组的具体顺序,再调整scale_pattern_manual中values的顺序,确保图案对应正确的小提琴。

内容的提问来源于stack exchange,提问作者Adeline Morisot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:05:29