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

如何使 bipartite 图下方节点框与交互连线颜色一致?

解决Bipartite图下方节点与连线颜色不一致问题

问题根源

原代码中颜色向量colP的长度是上下节点的总数量,而plotweb函数的col.interaction参数若为向量时,长度需匹配上方节点数量,这就导致颜色映射错位,最终下方节点框与连线颜色无法对应。要实现二者颜色一致,需精准控制每个连线的颜色与对应下方节点匹配。

修正后的代码

library(RColorBrewer)
library(bipartite)

# 生成 bipartite 矩阵
bip_matrix <- table(bip_data$higher, bip_data$lower)

# 获取唯一下方节点并分配对应颜色
lower_nodes <- colnames(bip_matrix)
col_low <- rainbow(length(lower_nodes))
names(col_low) <- lower_nodes  # 命名颜色向量,便于匹配节点

# 创建连线颜色矩阵:每个连线颜色对应其目标下方节点的颜色
col_interaction <- matrix(col_low[colnames(bip_matrix)], 
                          nrow = nrow(bip_matrix), 
                          ncol = ncol(bip_matrix),
                          byrow = TRUE)

# 绘制 bipartite 图
plotweb(bip_matrix, 
        method = 'normal', 
        col.high = 'gray',  # 上方节点颜色可自行调整
        col.low = col_low,  # 下方节点填充色
        col.interaction = col_interaction,  # 连线颜色与下方节点一致
        bor.col.interaction = col_interaction,  # 连线边框颜色同步
        bor.col.high = 'black',  # 上方节点边框颜色
        bor.col.low = col_low,  # 下方节点边框颜色与填充色一致
        high.lablength = NULL, 
        low.lablength = NULL, 
        text.rot = 90, 
        text.high.col = 'black', 
        text.low.col = 'black', 
        low.lab.dis = 0 )

关键调整说明

  • 单独为下方节点分配颜色,避免合并上下节点导致的颜色长度不匹配问题
  • 使用矩阵形式的col.interaction,让每个连线的颜色精准对应目标下方节点的颜色
  • 同步设置bor.col.low与col.low,确保下方节点的边框颜色也和填充色、连线色统一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:42:32