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

如何在R语言中设置弦图连接条边框比内部填充更深色

弦图连接条边框颜色加深方案

需求说明

希望让弦图的连接条(linkers)边框颜色比内部填充颜色更深。

示例数据代码

set.seed(999)
mat = matrix(sample(18, 18), 3, 6) 
rownames(mat) = paste0("S", 1:3)
colnames(mat) = paste0("E", 1:6)
mat
df = data.frame(from = rep(rownames(mat), times = ncol(mat)),
    to = rep(colnames(mat), each = nrow(mat)),
    value = as.vector(mat),
    stringsAsFactors = FALSE)

当前使用代码

par(mfrow = c(1, 2))
chordDiagram(mat, order = c("S2", "S1", "S3", "E4", "E1", "E5", "E2", "E6", "E3"))

实现方法

通过chordDiagram函数的link.border参数自定义边框颜色,同时基于连接条填充色生成更深的版本即可,具体示例如下:

方案1:基于默认填充色自动生成深色边框

library(circlize)
library(colorspace) # 用于快速调整颜色深浅

par(mfrow = c(1, 2))
chordDiagram(mat, 
             order = c("S2", "S1", "S3", "E4", "E1", "E5", "E2", "E6", "E3"),
             # 为每个连接条生成比填充色深20%的边框色
             link.border = lapply(rand_color(nrow(df)), function(col) {
               darken(col, amount = 0.2)
             }))

方案2:手动指定填充色与对应深色边框

library(circlize)
library(colorspace)

par(mfrow = c(1, 2))
# 自定义连接条填充色
custom_fill = c("#FF9999", "#99FF99", "#9999FF", "#FFCC99", "#CC99FF", "#99CCFF",
                "#FF6666", "#66FF66", "#6666FF", "#FF9966", "#9966FF", "#6699FF",
                "#FF3333", "#33FF33", "#3333FF", "#FF6633", "#6633FF", "#3366FF")
# 生成比填充色深30%的边框色
custom_border = lapply(custom_fill, function(col) darken(col, 0.3))

chordDiagram(df, 
             order = c("S2", "S1", "S3", "E4", "E1", "E5", "E2", "E6", "E3"),
             link.col = custom_fill,
             link.border = custom_border)

无额外包依赖的颜色加深方法

如果不想加载colorspace包,可以自己实现颜色加深函数:

darken_color = function(col, amount = 0.2) {
  rgb_vals = col2rgb(col) / 255
  rgb_vals = rgb_vals * (1 - amount)
  rgb(rgb_vals[1], rgb_vals[2], rgb_vals[3])
}

# 使用示例
chordDiagram(mat, 
             order = c("S2", "S1", "S3", "E4", "E1", "E5", "E2", "E6", "E3"),
             link.border = lapply(rand_color(nrow(df)), darken_color))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:10:25