如何可视化具有图结构特征的JSON数据
几种适配该JSON结构的简单可视化方案
以下方案都原生支持你这种带循环引用的有向图结构,不需要额外处理环的问题
方案1:Python + Graphviz 本地快速生成图片
- 先安装依赖:
pip install graphviz,同时安装对应系统的Graphviz运行环境即可使用 - 参考实现代码:
import json from graphviz import Digraph # 加载本地JSON文件 with open("your_graph.json", "r", encoding="utf-8") as f: graph_data = json.load(f) # 初始化有向图实例 dot = Digraph() # 批量添加节点,可自定义展示节点的field属性 for node_name in graph_data: node_info = graph_data[node_name] label = f"{node_name}\nfield1:{node_info['field1']}\nfield2:{node_info['field2']}" dot.node(node_name, label) # 批量添加有向边 for from_node in graph_data: for to_node in graph_data[from_node]["next"]: dot.edge(from_node, to_node) # 导出为png图片,也可指定导出为pdf、svg等格式 dot.render("graph_result", format="png", view=True)
运行后会直接生成可视化图片,节点多的场景也适配。
方案2:Mermaid 零代码轻量渲染
大部分常用笔记软件(Obsidian、Notion等)、代码编辑器(VS Code安装Mermaid插件后)都原生支持Mermaid语法渲染,你只需要把JSON内容转换成Mermaid有向图格式即可:
flowchart LR A["A<br>field1:X<br>field2:Y"] --> B B["B<br>field1:X<br>field2:Y"] --> C B --> D C["C<br>field1:X<br>field2:Y"] --> A D["D<br>field1:X<br>field2:Y"] --> C D --> E E["E<br>field1:X<br>field2:Y"] --> C E --> D
节点量大的场景可以写个简单脚本,批量从JSON生成Mermaid语法即可。
方案3:前端可视化实现
如果需要放到网页端做交互展示,用ECharts的关系图组件即可实现,只需要把你的JSON转换成ECharts要求的nodes、links数据格式,还可以支持拖拽节点、缩放、点击节点展示详情等交互。
内容的提问来源于stack exchange,提问作者Francesco Bonesi
相关产品推荐
相关产品推荐

