Jaal 库 轻松绘制动态社交网络关系图
共 1665字,需浏览 4分钟
· 2021-05-11
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
“分享”和“在看”是更好的支持