查看原文
其他

Jaal 库 轻松绘制动态社交网络关系图

大邓 大邓和他的Python 2022-07-09


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,高并发不限制,稳定速度快,快去薅羊毛吧!

精选文章

系列视频|Python网络爬虫与文本数据分析
语法最简单的微博通用爬虫weibo_crawler
来自kaggle最佳数据分析实践
B站视频 | Python自动化办公
SciencePlots | 科研样式绘图库
使用streamlit上线中文文本分析网站
bsite库 | 采集B站视频信息、评论数据
texthero包 | 支持dataframe的文本分析包
爬虫实战 | 采集&可视化知乎问题的回答
reticulate包 | 在Rmarkdown中调用Python代码
plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库
读完本文你就了解什么是文本分析
文本分析在经管领域中的应用概述  
综述:文本分析在市场营销研究中的应用
plotnine: Python版的ggplot2作图库
Wow~70G上市公司定期报告数据集
漂亮~pandas可以无缝衔接Bokeh  
YelpDaset: 酒店管理类数据集10+G  

    分享”和“在看”是更好的支持

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存