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

如何在R的igraph中为数据制作渐变色条图例

为igraph网络图添加蓝红渐变图例

可以通过基础绘图工具实现渐变条图例的添加,以下是整合了图例功能的完整代码:

# 加载依赖包
library(igraph)
set.seed(62)
N <- 7
fakecors <- runif(choose(N, 2))
cormat <- matrix(nrow = N, ncol = N)
cormat[lower.tri(cormat)] <- fakecors
diag(cormat) <- 0
cormat[upper.tri(cormat)] <- t(cormat)[upper.tri(t(cormat))] 
matrixnetwork <- graph_from_adjacency_matrix(cormat, mode = "undirected", weighted = TRUE)

# 计算并归一化介数中心性
V(matrixnetwork)$eb <- estimate_betweenness(matrixnetwork,cutoff = 0)
normalize <- function(x){(x-min(x))/(max(x)-min(x))} 
V(matrixnetwork)$eb_index <- round(normalize(V(matrixnetwork)$eb) * 90) + 10

# 创建蓝红渐变调色板并分配节点颜色
color_pal <- colorRampPalette(c("#4477AA","#BB4444"))(100)
V(matrixnetwork)$color <- color_pal[V(matrixnetwork)$eb_index]

# 调整绘图边距,为图例预留右侧空间
par(mar = c(5,4,4,6))
# 绘制网络图
plot(matrixnetwork)

# 添加渐变色条图例
# 定义色条位置(x起始、y起始、x结束、y结束)
legend_area <- c(1.05, 0.2, 1.1, 0.8)
# 绘制垂直渐变条
image(x = 1, 
      y = seq(0,100, length.out = 100), 
      z = matrix(seq(0,100, length.out = 100), nrow = 1),
      col = color_pal, 
      xlim = c(0,1), ylim = c(0,100),
      axes = FALSE, xlab = "", ylab = "",
      add = TRUE, 
      useRaster = TRUE)
# 添加刻度标签
axis(side = 4, at = c(0,50,100), labels = c("0%", "50%", "100%"), line = 0)
# 添加图例标题
mtext("归一化介数中心性", side = 4, line = 2.5)

关键说明:

  • 用par(mar)调整绘图区域边距,保证右侧有足够空间放置图例
  • 复用之前定义的蓝红渐变调色板,通过image函数绘制垂直渐变条
  • 借助axis添加对应0%、50%、100%的刻度标签,mtext设置图例标题

内容的提问来源于stack exchange,提问作者Ana Paula Castro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:16:15