Jaal是基于Dash和Visdcc构建的可交互的Python社交网络库。由于底层使用了dash,所以我们可以认为jaal更像是一个仪表盘。基于此,jaal也提供了多种处理网络数据的可选项,例如搜索、过滤、给节点(边)上色等。所有的操作,两三行代码即可搞定。

!pip3 install jaal

一、快速上手

本文准备了《权利的游戏》的节点nodes.csv和边edges.csv数据, 可以使用jaal的plot()函数绘制《权利的游戏》关系网络图。 必须有的字段,这里加粗了 nodes.csv数据含

  • from: 节点
  • to: 节点
  • weight: 边权重
  • strenth:

edges.csv数据

  • id 节点id,姓名
  • gender 节点的性别
import pandas as pd
from jaal import Jaal

edge_df = pd.read_csv('edges.csv')
node_df = pd.read_csv('nodes.csv')
Jaal(edge_df, node_df).plot()

运行代码后,会生成一个本地服务链接,例如 http://127.0.0.1:8050/ , 点击链接,浏览器就能看到


二、Jaal功能

  • 设置面板 Jaal运行产生的浏览器界面左侧会有一个设置面板,可以对数据进行搜索、筛选、上色。
  • 搜索 可以高亮搜索到的节点
  • 过滤 支持pandas的query语法
  • 上色 基于类别,对节点、边进行上色。能最多支持20个类别,即节点、边数据允许有20种属性

三、 案例

3.1 搜索

第一个选项是搜索,我们可以在其中搜索图中的特定节点。 它支持在节点标签上逐字符搜索。 以下是我们尝试搜索“ Arya”的示例

3.2 过滤

接下来,我们进行过滤。 Jaal支持在节点和边要素上都进行过滤的选项。 为此,我们提供了单独的文本区域。 下面我们可以看到节点和边缘过滤查询的实时效果。

3.3 染色

最后,我们可能希望查看任何功能的整体分布,而不是进行过滤。 目前,Jaal通过提供根据任何分类特征为节点或边缘着色的选项来解决此问题。 我们可以在下面看到一个真实的例子。


四、 代码获取

  1. 直接下载
  2. github更多代码



广而告之