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

如何为同组数据的小提琴图与箱线图设置不同色阶?

实现小提琴图与箱线图的独立调色板

要给叠加的小提琴图和箱线图设置不同的填充调色板,有两种常用方法:

方法一:使用ggnewscale包(推荐,更灵活)

这个包允许在同一张图中使用多个相同的美学尺度(比如两次fill),步骤如下:

  1. 先安装并加载所需包:
install.packages("ggnewscale")
library(ggplot2)
library(RColorBrewer)
library(ggnewscale)
  1. 修改绘图代码:
# 生成数据
x <- matrix(runif(n=1000,0,1),ncol =4 )  
df <- reshape2::melt(x)

df$Var2 <- as.factor(df$Var2)
df$Var3 <- df$Var2

df |>
  ggplot(aes(x = Var2, y = value)) +
  # 绘制小提琴图,使用Set2调色板
  geom_violin(aes(fill = Var2)) +
  scale_fill_brewer(palette = "Set2", guide = "none") +
  # 重置fill尺度,为箱线图开启独立的调色板
  new_scale_fill() +
  # 绘制箱线图,使用Dark2调色板
  geom_boxplot(width=0.2, aes(fill = Var3)) +
  scale_fill_brewer(palette = "Dark2", guide = "none") +
  # 主题与其他设置
  theme_light() +
  geom_hline(yintercept = 0) +
  theme(
    axis.text.x = element_blank(), axis.ticks.x = element_blank(),
    axis.text.y = element_blank(), axis.ticks.y = element_blank(),
  ) +
  labs(x = NULL, y = NULL)

方法二:手动指定颜色(无需额外安装包)

如果不想安装新包,可以直接为箱线图手动分配颜色,通过group参数保证分组正确:

# 生成数据
x <- matrix(runif(n=1000,0,1),ncol =4 )  
df <- reshape2::melt(x)

df$Var2 <- as.factor(df$Var2)

library(ggplot2)
library(RColorBrewer)

# 获取两种调色板的颜色
violin_cols <- brewer.pal(4, "Set2")
boxplot_cols <- brewer.pal(4, "Dark2")

df |>
  ggplot(aes(x = Var2, y = value)) +
  # 小提琴图使用Set2调色板
  geom_violin(aes(fill = Var2)) +
  scale_fill_manual(values = violin_cols, guide = "none") +
  # 箱线图手动指定Dark2颜色,用group确保分组对应
  geom_boxplot(width=0.2, 
               aes(group = Var2),
               fill = boxplot_cols[as.numeric(df$Var2)],
               inherit.aes = FALSE) +
  theme_light() +
  geom_hline(yintercept = 0) +
  theme(
    axis.text.x = element_blank(), axis.ticks.x = element_blank(),
    axis.text.y = element_blank(), axis.ticks.y = element_blank(),
  ) +
  labs(x = NULL, y = NULL)

说明

  • 两种方法都隐藏了图例(guide = "none"),符合你原来的需求。
  • scale_fill_brewer可以直接调用RColorBrewer的内置调色板,无需手动提取颜色向量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:16:06