跳转至

src/visualize

阶段 5 模块,负责生成交互式 HTML 可视化。

函数

build_networkx_graph(graph_json_path: str) → nx.DiGraph

从 JSON 文件加载知识图谱到 NetworkX DiGraph。

参数:

名称 类型 说明
graph_json_path str knowledge_graph.json 的路径

返回值: NetworkX 有向图。


create_network_viz(G: nx.DiGraph, output_path: str) → None

使用 Pyvis 生成交互式力导向网络图。

参数:

名称 类型 说明
G nx.DiGraph 知识图谱
output_path str 输出 HTML 文件路径

特性:

  • 节点按类型着色(金色=得主、浅蓝=论文、绿色=概念、橙色=奖项、紫色=领域)
  • 节点大小按度数缩放
  • CROSS_INSPIRED 边以红色高亮且加粗
  • Barnes-Hut 物理模拟布局
  • HTML 图例叠加层

create_timeline_viz(G: nx.DiGraph, output_path: str) → None

使用 Plotly 生成概念时间轴散点图。

参数:

名称 类型 说明
G nx.DiGraph 知识图谱
output_path str 输出 HTML 文件路径

特性:

  • X 轴:年份,Y 轴:领域
  • 标记大小按连接数缩放
  • CROSS_INSPIRED 边以红色箭头注释
  • 悬停显示概念详情

create_heatmap_viz(G: nx.DiGraph, output_path: str) → None

使用 Plotly 生成领域间跨学科热力图。

参数:

名称 类型 说明
G nx.DiGraph 知识图谱
output_path str 输出 HTML 文件路径

特性:

  • 源领域 × 目标领域的方阵
  • YlOrRd 配色
  • 悬停显示精确迁移计数

run() → None

执行完整的阶段 5 流水线:

  1. 加载配置
  2. 从 JSON 构建图谱
  3. 生成 network.html
  4. 生成 timeline.html
  5. 生成 heatmap.html