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

如何使用Python igraph或Gephi按betweenness centralities可视化网络?

按介数中心性实现网络可视化的两种方案

注意:需保证原始网络的节点ID和你存储的介数中心性CSV中的节点ID一一对应,避免属性匹配错误

方案1:使用Python igraph实现

  • 第一步:导入依赖,加载网络和介数中心性数据并完成属性匹配
import igraph as ig
import pandas as pd

# 加载原始网络,可替换为你自己的网络加载逻辑(如读边表csv等)
g = ig.read("your_original_network.gml")
# 读取存储了介数中心性的CSV,假设CSV包含node_id、betweenness两列
bc_df = pd.read_csv("betweenness_centralities.csv")
# 将介数中心性写入图的节点属性
g.vs["betweenness"] = bc_df["betweenness"].values
  • 第二步:配置可视化映射规则并绘图
# 归一化介数中心性,映射为10~50区间的节点大小
min_bc, max_bc = min(g.vs["betweenness"]), max(g.vs["betweenness"])
g.vs["size"] = [10 + 40*(bc - min_bc)/(max_bc - min_bc) for bc in g.vs["betweenness"]]

# 配置介数中心性到节点颜色的渐变映射(浅蓝到深红)
palette = ig.GradientPalette("#b3d9ff", "#c92020")
g.vs["color"] = [palette.get((bc - min_bc)/(max_bc - min_bc)) for bc in g.vs["betweenness"]]

# 渲染图像并保存
ig.plot(
    g,
    "bc_visualization.png",
    bbox=(1200, 1200), # 画布尺寸
    margin=60, # 画布边距
    vertex_label_size=7, # 节点标签字号
    edge_color="#e0e0e0", edge_width=0.4 # 边的样式
)

方案2:使用Gephi实现

  • 第一步:导入原始网络
    打开Gephi,进入「数据实验室」标签页,导入你的原始网络文件(支持gml、边表CSV、pajek等多种格式),完成节点和边的导入。
  • 第二步:导入介数中心性属性
    在「数据实验室」点击「导入电子表格」,选择你存储的介数中心性CSV文件,导入模式选择「追加到现有节点」,匹配字段选择两个文件共有的节点ID字段,完成导入后你可以在节点属性列表中看到betweenness字段。
  • 第三步:配置属性可视化映射
    切换到「概览」标签页,在左侧「外观」面板中操作:
    • 映射节点大小:选择「节点」→「大小」→「排名」,下拉选择betweenness属性,设置你需要的最小/最大节点尺寸,点击「应用」
    • 映射节点颜色:选择「节点」→「颜色」→「排名」,同样选择betweenness属性,配置你需要的渐变配色方案,点击「应用」
  • 第四步:调整布局并导出
    在左侧「布局」面板选择合适的布局算法(常用的如ForceAtlas2)运行,调整到满意的网络结构后,切换到「预览」标签页调整渲染参数,最后导出为图片或PDF即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:24:03