networkx edge 属性_一文读懂Python复杂网络分析库networkx | CSDN博文精选

本文详细介绍了Python复杂网络分析库networkx,包括安装、无向图Graph和有向图DiGraph的使用,节点和边的属性设置,以及如何绘制各种网络图。此外,还展示了如环形树状图、权重图、随机几何图等多种图例。
摘要由CSDN通过智能技术生成

作者 | yyl424525

来源 | CSDN博客

文章目录

1. 简介

  • 安装

  • 支持四种图

  • 绘制网络图基本流程

2. Graph-无向图

节点

属性

有向图和无向图互转

3. DiGraph-有向图

  • 一些精美的图例子

  • 环形树状图

  • 权重图

  • Giant Component

  • Random Geometric Graph 随机几何图

  • 节点颜色渐变

  • 边的颜色渐变

  • Atlas

  • 画个五角星

  • Club

  • 画一个多层感知机

  • 绘制一个DNN结构图

  • 一些图论算法

  • 最短路径

4. 问题

  • 一些其他神经网络绘制工具列表

5. 参考

1 简介

networkx是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。

利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。

networkx支持创建简单无向图、有向图和多重图(multigraph);内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。

networkx以图(graph)为基本数据结构。图既可以由程序生成,也可以来自在线数据源,还可以从文件与数据库中读取。

安装

安装的话,跟其他包的安装差不多,用的是anaconda就不用装了。其他就用pip install networkx。

查看版本:

1>>> import networkx

2>>> networkx.__version__

3'1.11'

升级

1pip install --upgrade networkx

下面配合使用的一些库,可以选择性安装:

后面可能用到pygraphviz,安装方法如下(亲测有效):

1sudo apt-get install graphviz

2sudo apt-get install graphviz libgraphviz-dev pkg-config

3sudo apt-get install python-pip python-virtualenv

4pip install pygraphviz

windows的安装参考这篇博客:https://blog.csdn.net/fadai1993/article/details/82491657#2____linux_9

安装cv2:

1pip install opencv-python #安装非常慢,用下面的方式,从清华源下载

2pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

支持四种图

  • Graph:无多重边无向图

  • DiGraph:无多重边有向图

  • MultiGraph:有多重边无向图

  • MultiDiGraph:有多重边有向图

空图对象的创建方式

1import networkx as nx

2G=nx.Graph

3G=nx.DiGraph

4G=nx.MultiGraph

5G=nx.MultiDiGraph

6G.clear #清空图

绘制网络图基本流程

  • 导入networkx,matplotlib包

  • 建立网络

  • 绘制网络 nx.draw

  • 建立布局 pos = nx.spring_layout美化作用

最基本画图程序

1import import networkx as nx #导入networkx包

2import matplotlib.pyplot as plt

3G = nx.random_graphs.barabasi_albert_graph(100,1) #生成一个BA无标度网络G

4nx.draw(G) #绘制网络G

5plt.savefig("ba.png") #输出方式1: 将图像存为一个png格式的图片文件

6plt.show #输出方式2: 在窗口中显示这幅图像

networkx 提供画图的函数

1draw(G,[pos,ax,hold])

2draw_networkx(G,[pos,with_labels])

3draw_networkx_nodes(G,pos,[nodelist])绘制网络G的节点图

4draw_networkx_edges(G,pos[edgelist])绘制网络G的边图

5draw_networkx_edge_labels(G, pos[, …]) 绘制网络G的边图,边有label

6—有layout 布局画图函数的分界线—

7draw_circular(G, **kwargs) Draw the graph G with a circular layout.

8draw_random(G, **kwargs) Draw the graph G with a random layout.

9draw_spectral(G, **kwargs)Draw the graph G with a spectral layout.

10draw_spring(G, **kwargs)Draw the graph G with a spring layout.

11draw_shell(G, **kwargs) Draw networkx graph with shell layout.

12draw_graphviz(G[, prog])Draw networkx graph with graphviz layout.

networkx 画图函数里的一些参数

  • pos(dictionary, optional): 图像的布局,可选择参数;如果是字典元素,则节点是关键字,位置是对应的值。如果没有指明,则会是spring的布局;也可以使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值