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

R语言实现:为网络图添加矩阵中的边权重标签

给visNetwork网络图添加边权重标签的实现方法

直接通过以下两步修改你的代码就能实现需求:

  1. 给edges数据框添加label列
    把edges$weight格式化后(比如保留3位小数)赋值给edges$label,visNetwork会自动识别该列作为边的标签文本:
# 格式化权重为保留3位小数的字符串,作为边标签
edges$label <- round(edges$weight, 3) %>% as.character()
  1. 在visEdges中配置标签显示参数
    在visEdges函数里添加标签样式设置,调整字体大小、颜色等,确保标签清晰可见:
visEdges(
  arrows = list(to = list(enabled = TRUE)),
  label = list(
    fontSize = 12,
    color = "#333333"
  )
)

修改后的完整代码

library(tidyverse)
library(visNetwork)
library(htmlwidgets)

set.seed(123)
mat <- matrix(runif(19*20), nrow = 19, ncol = 20)
mat <- t(apply(mat, 1, function(x) x/sum(x)))
mat <- rbind(mat, c(rep(0, 19), 1))

nodes <- data.frame(id = 1:20)
edges <- data.frame(from = sample(1:20, 100, replace = TRUE), to = sample(1:20, 100, replace = TRUE))

nodes$shape <- 'circle'
edges$weight <- apply(edges, 1, function(x) mat[x["from"], x["to"]])

# 新增:添加边标签列
edges$label <- round(edges$weight, 3) %>% as.character()

# 创建网络图并配置边标签样式
network <- visNetwork(nodes, edges) %>%
  visEdges(
    arrows = list(to = list(enabled = TRUE)),
    label = list(
      fontSize = 12,
      color = "#333333"
    )
  ) %>%
  visIgraphLayout(layout = "layout_in_circle")

# 查看网络图
network

说明

  • 若需调整小数位数,修改round()函数的第二个参数即可(比如改成2就是保留2位小数)
  • 可根据需求调整label里的fontSize、color等参数,让标签更贴合可视化需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:18:20