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

使用ggplot2绘制Alluvial图:高亮指定配对的实现方案

解决Alluvial图指定配对高亮的思路

核心方案

给数据集新增一个标记列,区分「需要高亮的配对」和「其余配对」,再通过颜色映射实现高亮效果,支持任意指定配对(具体值或行号)。

步骤1:给数据添加高亮标记

假设你的数据集名为df,包含CTaa_alpha、CTaa_beta以及表示频数的列(比如count):

方式1:指定具体配对值高亮

直接匹配你需要的alpha和beta组合:

library(dplyr)

df <- df %>%
  mutate(
    highlight_group = ifelse(
      CTaa_alpha == "CAGGFNYQLIW" & CTaa_beta == "CASSVAGPNTEAFF",
      "target_pair",
      "other_pairs"
    )
  )

方式2:按行号指定配对高亮

比如要高亮第10行的配对,先提取对应行的alpha和beta值,再标记:

target_alpha <- df$CTaa_alpha[10]
target_beta <- df$CTaa_beta[10]

df <- df %>%
  mutate(
    highlight_group = ifelse(
      CTaa_alpha == target_alpha & CTaa_beta == target_beta,
      "target_pair",
      "other_pairs"
    )
  )

扩展:高亮多个配对

用case_when可以同时标记多组目标配对:

df <- df %>%
  mutate(
    highlight_group = case_when(
      CTaa_alpha == "CAGGFNYQLIW" & CTaa_beta == "CASSVAGPNTEAFF" ~ "target1",
      CTaa_alpha == "XXXXXX" & CTaa_beta == "YYYYYY" ~ "target2",
      TRUE ~ "other_pairs"
    )
  )

步骤2:修改绘图代码实现高亮

在geom_alluvium和geom_stratum中,用新增的highlight_group映射填充色,再手动设置颜色:

library(ggplot2)
library(ggalluvial)

ggplot(df,
       aes(y = count, axis1 = CTaa_alpha, axis2 = CTaa_beta)) +
  # 冲积层颜色映射
  geom_alluvium(aes(fill = highlight_group), width = 1/12) +
  # 节点层颜色映射
  geom_stratum(aes(fill = highlight_group), width = 1/12) +
  # 节点标签
  geom_text(stat = "stratum", aes(label = after_stat(stratum))) +
  # 手动设置颜色:高亮用鲜艳色,其余用灰色
  scale_fill_manual(
    values = c(
      "target_pair" = "#ff6347", # 可替换成你喜欢的颜色
      "other_pairs" = "#cccccc"
    )
  ) +
  theme_minimal() +
  guides(fill = "none") # 不需要图例就加上这行

注意事项

  • 替换代码中的count为你实际用来表示频数的列名
  • 高亮颜色可自行调整,比如#1e90ff(蓝色)、#ffd700(金色)等
  • 如果用多组高亮,在scale_fill_manual中对应添加每组的颜色即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:01:10