许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Python网络图【NetworkX】极简代码示例

Python网络图【NetworkX】极简代码示例

阅读数 1
点赞 0
article_banner

安装

Anaconda Prompt下输入conda install networkx

简介

import networkx as nx
# 创建图
# G = nx.Graph()  # 无多重边无向图
G = nx.DiGraph()  # 无多重边有向图
# G = nx.MultiGraph()  # 有多重边无向图
# G = nx.MultiDiGraph()  # 有多重边有向图
# 添加节点
G.add_node('a')
# 添加边
G.add_edge('b', 'c')
# 绘图
nx.draw(G, with_labels=True)

在这里插入图片描述


绘图参数中文解释
node_size节点的大小
node_color节点的颜色
node_shape节点的形状
alpha透明度
width边的宽度
edge_color边的颜色
style边的样式
with_labels节点是否带标签
font_size节点标签字体大小
font_color节点标签字体颜色

示例

无多重边无向图

import jieba, networkx as nx, matplotlib.pyplot as mp
# 分词
jieba.suggest_freq(('人', '美', '波'), True)
text = '大氵皮美人鱼人美氵皮大。女乃罩作用是用作罩女乃。明天到操场操到天明。广木上人客叫客人上广木。上海自来水来自海上。'
words = jieba.lcut(text)
# 创建空的网络图
G = nx.Graph()
# 添加节点
for word in words:
    G.add_node(word)
# 添加边
for i in range(len(words) - 1):
    G.add_edge(words[i], words[i+1])
# 用黑体显示中文
mp.rcParams['font.sans-serif']=['SimHei']
# 绘图
nx.draw(G, alpha=1, with_labels=True, node_color='white', font_size=12)

在这里插入图片描述

有多重边有向图

%matplotlib inline
import jieba.posseg as jp, networkx as nx
# 分词
text = '大氵皮美人鱼人美氵皮大。女乃罩作用是用作罩女乃。明天到操场操到天明。广木上人客叫客人上广木。上海自来水来自海上。'
words = jp.lcut(text)
# 创建【无多重边有向图】
G = nx.MultiDiGraph()  # 有多重边有向图
# 添加节点
for word in words:
    G.add_node(word.flag)
# 添加边
for i in range(len(words) - 1):
    G.add_edge(words[i].flag, words[i+1].flag)
# 绘图
nx.draw(G, alpha=0.8, with_labels=True, node_color='lightgreen', font_size=36, node_size=999, width=2)

在这里插入图片描述

布局


参数解释
circular_layout节点在一个圆环上均匀分布
random_layout节点随机分布
shell_layout节点在同心圆上分布
spring_layout用Fruchterman-Reingold算法排列节点
nx.draw(G, pos=nx.shell_layout(G), alpha=0.8, with_labels=True, node_color='lightgreen', font_size=36, node_size=999, width=2)

其他算法


函数功能
nx.shortest_path_length最短距离
nx.shortest_path最短路径
nx.pagerank网页排名

附录

GitHub地址:

   https://github.com/AryeYellow/PyProjects/ blob /master/DataScience/ Visualization .ipynb


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空