其他
Jaal 库 轻松绘制动态社交网络关系图
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通过提供根据任何分类特征为节点或边缘着色的选项来解决此问题。我们可以在下面看到一个真实的例子。
代码已上传到github仓库,欢迎关注
https://github.com/thunderhit/DaDengAndHisPython
扫码免费领1万代理IP,高并发不限制,稳定速度快,快去薅羊毛吧!