ipycytoscape:在 Jupyter 中交互式可视化网络图

0 阅读3分钟

ipycytoscape:在 Jupyter 中交互式可视化网络图

数据分析中经常遇到网络图,社交关系、蛋白质交互、知识图谱,都可以用节点和边的形式表达。展示这些关系不复杂,但要在 Jupyter 里交互式地查看和操作,选择并不多。ipycytoscape 填补了这个空白,让 Notebook 用户可以直接在代码单元格中创建和操作网络图。

正文顶部截图

什么是 ipycytoscape

ipycytoscape 是一个 Jupyter 插件,基于 Cytoscape.js 实现图形可视化。Cytoscape.js 是前端领域成熟的图形可视化库,支持多种布局算法、样式定制和交互事件。ipycytoscape 相当于给 Jupyter 用户提供了直接调用这些能力的接口,在代码单元格中创建网络图后,可以缩放、拖拽、筛选,所有操作实时响应,不需要写前端代码。

项目目前有 289 个 Star,由 QuantStack 团队发起维护,采用 BSD-3-Clause 协议。

数据源支持

这个工具最实用的地方在于支持多种数据源:

NetworkX:Python 生态中最常用的图分析库。常见的操作如创建图、计算节点中心性、做社区发现,都可以用 NetworkX 完成。ipycytoscape 可以直接读取 NetworkX 的图对象进行渲染,分析完直接可视化,省了格式转换步骤。

Pandas DataFrame:如果数据以表格形式存在,用 DataFrame 表示边列表,同样可以导入。这对于习惯用 Pandas 处理数据的人很方便,不需要额外学习图数据格式。

Neo4j:图数据库查询结果也能无缝接入。如果团队已经在用 Neo4j 存储图数据,ipycytoscape 可以直接可视化查询结果,适合生产环境使用。

三种数据源覆盖了大部分使用场景。无论数据来自 Python 库、表格文件还是数据库,都能接入。

README区域截图

安装方式

安装很简单,通过 conda-forge 或 pip 都可以:

mamba install -c conda-forge ipycytoscape

pip 用户也可以:

pip install ipycytoscape

如果需要 Pandas 或 Neo4j 支持,安装对应的依赖包即可。整个过程不依赖复杂编译,装完就能在 Jupyter 中使用。对于 JupyterLab 1.x 或 2.x 用户,需要额外安装 nodejs 和 jupyterlab-manager 扩展。

具体示例代码可以在项目的 examples 目录中找到,包括 NetworkX 使用示例、Pandas 导入示例和 Neo4j 接入示例。

适用场景

生物信息学领域是典型应用场景。蛋白质交互网络、基因调控网络的展示,用 ipycytoscape 可以直接在 Notebook 中完成。研究人员分析完数据,同一个环境下就能看到可视化结果。

社交网络分析也适合。节点关系、社区结构、传播路径的可视化,ipycytoscape 的交互能力让探索更直观。

知识图谱的探索性分析同样适用。图谱的节点和关系展示,缩放和拖拽的操作方式符合直觉。

对于 Jupyter 生态来说,图形可视化一直是个相对薄弱的环节。做数据分析的人经常需要在 Notebook 中展示图结构数据,但现有方案要么功能有限,要么配置复杂。ipycytoscape 在这块提供了一个轻量级但功能完整的方案。

小结

在 Jupyter 中做网络图可视化,选项有限。ipycytoscape 把 Cytoscape.js 的能力带到了 Notebook 中,安装简单,支持 NetworkX、Pandas、Neo4j 三种数据源,交互操作流畅。对于需要频繁在数据分析流程中展示网络关系的人来说,是个值得留意的工具。