❝
「graph_tool」是个专门用于「创建networks」的Python库,底层数据结构和算法使用C++实现,大量使用元编程,依赖于C++的Boost Graph库。 graph_tool背后会涉及到各种「复杂图形理论算法」(例如,graph isomorphism, subgraph isomormism, minimum spanning tree, connected components, dominator tree, maximum flow, etc),但本文不谈算法,只说如何创建networks。 graph_tool主要「运用领域」: ❝❞社交网络分析
❞
数据挖掘
家谱树
网络聚类和建模
......
graph_tool安装
conda create --name gt -c conda-forge graph-tool
conda activate gt
graph_tool丰富的subpackages
graph_tool有很多的subpackages,文档非常详细,可前往https://graph-tool.skewed.de/static/doc/py-modindex.html仔细研读:
❝❞
graph_tool.centrality
- 计算network的中心度相关的信息graph_tool.clustering
- 计算计算network的各种聚类系数graph_tool.collection
- 数据集graph_tool.correlations
- 计算相关度信息graph_tool.dynamics
- network中常研究的动态过程方法使用graph_tool.draw
- 一些常用的绘图算法graph_tool.flow
- Edmonds-Karp algorithm,push-relabel algorithm等graph_tool.generation
- 用于预先生成一些network,2D or 3D triangulation graph,circular graph等graph_tool.inference
- 推断图的社区结构graph_tool.search
- 搜索算法graph_tool.stats
- network简单统计graph_tool.topology
- 包装network的拓扑性质,比如最小生成树,拓扑排序等graph_tool.util
- 节点和边的查找方法
快速上手graph_tool
#创建包含两个顶点一个有向边的network图
from graph_tool.all import *
g = Graph()#实例化Graph类创建一个空图
ug = Graph(directed=False)#有向图
ug = Graph()
ug.set_directed(False)
assert ug.is_directed() == False
g1 = Graph()
g2 = Graph(g1)
#add_vertex()方法添加两个顶点
v1 = g.add_vertex()
v2 = g.add_vertex()
#add_edge()添加了从v1到v2的有向边
e = g.add_edge(v1, v2)
#graph_draw()函数创建network图
graph_draw(g, vertex_text=g.vertex_index, output="two-nodes.pdf")

graph_tool丰富demo
Simple blockmodel with 10 blocks
isomorphism

2D triangulation of random points

2D or 3D triangulation graph from a given point set

State of Axelrod’s model on a political blog network

a Price network

minimum spanning tree

K-core decomposition of a network of network scientists

Jaccard similarities to vertex 0
in a political books network

让graph-tool图动起来

graph-tool结合matplotlib
很方便的绘制子图~~
Reference
https://graph-tool.skewed.de
/https://en.wikipedia.org/wiki/Graph-tool
近期文章
腾讯课堂 | Python网络爬虫与文本分析 中文金融情感词典发布啦 | 附代码 B站视频 | Python自动化办公 wordexpansion包 | 新增词向量法构建领域词典 语法最简单的微博通用爬虫weibo_crawler hiResearch 定义自己的科研首页 大邓github汇总, 觉得有用记得star whatlies包 | 简单玩转词向量可视化 multistop ~ 多语言停用词库 Jaal 库 轻松绘制动态社交网络关系图 SciencePlots | 科研样式绘图库 使用streamlit上线中文文本分析网站 爬虫实战 | 采集&可视化知乎问题的回答 Clumper | dplyr式的Python数据操作包 Clumper库 | 常用的数据操作函数 Clumper库 | Groupby具体案例用法 Clumper库 | 其他数据分析 plydata库 | 数据操作管道操作符>> plotnine: Python版的ggplot2作图库 读完本文你就了解什么是文本分析 文本分析在经管领域中的应用概述 综述:文本分析在市场营销研究中的应用 plotnine: Python版的ggplot2作图库 Wow~70G上市公司定期报告数据集 漂亮~pandas可以无缝衔接Bokeh YelpDaset: 酒店管理类数据集10+