【Python】networkx创建图(1)
目录
0、matplotlob画图
1、创建一个无向图
2、调用函数生成经典的graph
3、社交网络
4、社区
0、matplotlob画图
plt.subplot(221) #生成2*2的组图,并且当前子图在2*2矩阵的第一个位置.第二个位置是222
plt.title('complete_graph') #子图的标题
nx.draw(G, with_labels=True, font_weight='bold') #将graph画出来
plt.axis('on') #需要坐标轴,以便框住graph
plt.xticks([]) #横坐标不需要刻度
plt.yticks([]) #纵坐标不需要刻度
1、创建一个无向图
import matplotlib
import networkx as nx
from PIL import Image
import matplotlib.pyplot as plt
from networkx.drawing.nx_pydot import to_pydot
from matplotlib.font_manager import *#用于显示图片
def ShowGraph(G):# 使用pydot保存图片P = to_pydot(G)P.write_jpeg('pydot.png')# 使用matplotlib保存图片pos = nx.shell_layout(G)nx.draw(G,pos,with_labels=True)plt.savefig('mat.png')plt.close()# 将前面两张图显示plt.subplots(figsize=(12,6))# plt.suptitle('Diffrent')# 载入matplotlib的图片plt.subplot(1,2,1)plt.title('matplotlib')plt.imshow(Image.open('mat.png'))# plt.axis('off')# 去掉坐标刻度plt.xticks([])plt.yticks([])# 载入pydot的图片plt.subplot(1,2,2)plt.title('pydot')plt.imshow(Image.open('pydot.png'))# plt.axis('off')# 去掉坐标刻度plt.xticks([])plt.yticks([])# 显示图片plt.show()if __name__ == '__main__':# 解决负号'-'显示为方块的问题matplotlib.rcParams['axes.unicode_minus']=False# 定义图的节点和边nodes=['0','1','2','3','4','5','a','b','c']edges=[('0','0',1),('0','1',1),('0','5',1),('0','5',2),('1','2',3),('1','4',5),('2','1',7),('2','4',6),('a','b',0.5),('b','c',0.5),('c','a',0.5)]# 定义无向图G = nx.Graph()# 往图添加节点和边G.add_nodes_from(nodes)G.add_weighted_edges_from(edges)# 显示图片ShowGraph(G)
结果如下
可能额外需要安装的包???
conda install -c conda-forge graphviz
2、调用函数生成经典的graph
plt.subplots(2,2,figsize=(15,6))K_5 = nx.complete_graph(5)
plt.subplot(221)
plt.title('complete_graph')
nx.draw(K_5, with_labels=True, font_weight='bold')
plt.axis('on')
plt.xticks([])
plt.yticks([])K_3_5 = nx.complete_bipartite_graph(3, 5)
plt.subplot(222)
plt.title('complete_bipartite_graph')
nx.draw(K_3_5, with_labels=True, font_weight='bold')
plt.axis('on')
plt.xticks([])
plt.yticks([])barbell = nx.barbell_graph(10, 10)
plt.subplot(223)
plt.title('barbell_graph')
nx.draw(barbell, with_labels=True, font_weight='bold')
plt.axis('on')
plt.xticks([])
plt.yticks([])lollipop = nx.lollipop_graph(10, 20)
plt.subplot(224)
plt.title('lollipop_graph')
nx.draw(lollipop, with_labels=True, font_weight='bold')
plt.axis('on')
plt.xticks([])
plt.yticks([])plt.show()
"""
格子graph
"""
G = nx.grid_2d_graph(2,3) # 二维网格图
grid_graph = nx.grid_graph(dim=[1, 3, 4]) # n维网格图
G = nx.hexagonal_lattice_graph(2,3) # m×n的六角形格子图
G = nx.hypercube_graph(3) # n维超立方体图形
G = nx.triangular_lattice_graph(1,3) # 三角格子图"""
各种已经被命名的小graph
"""
petersen = nx.petersen_graph()
tutte = nx.tutte_graph()
maze = nx.sedgewick_maze_graph()
tet = nx.tetrahedral_graph()"""
使用随机graph生成器
"""
er = nx.erdos_renyi_graph(10, 0.15)
ws = nx.watts_strogatz_graph(30, 3, 0.1)
ba = nx.barabasi_albert_graph(10, 5)
red = nx.random_lobster(10, 0.9, 0.9)
3、社交网络
plt.subplots(2,2,figsize=(15,6))#返回Zachary的空手道俱乐部图。
G.clear()
G = nx.karate_club_graph()
plt.subplot(1,2,1)
nx.draw(G,with_labels=True)
plt.title('karate_club_graph')
plt.axis('on')
plt.xticks([])
plt.yticks([])#戴维斯南方女性社交网络。
G.clear()
G = nx.davis_southern_women_graph()
plt.subplot(1,2,2)
nx.draw(G,with_labels=True)
plt.title('davis_southern_women_graph')
plt.axis('on')
plt.xticks([])
plt.yticks([])plt.show()
"""
显示图
"""G = nx.davis_southern_women_graph()
nx.draw(G,with_labels=True)
plt.show()
4、社区
plt.subplots(2,2,figsize=(15,6))er = nx.caveman_graph(3,3)
plt.subplot(221)
plt.title('caveman_graph')
nx.draw(er, with_labels=True, font_weight='bold')
plt.axis('on')
plt.xticks([])
plt.yticks([])ws = nx.random_partition_graph([10,10,10],.25,.01)
plt.subplot(222)
plt.title('random_partition_graph')
nx.draw(ws, with_labels=True, font_weight='bold')
plt.axis('on')
plt.xticks([])
plt.yticks([])ba = nx.ring_of_cliques(8, 4)
plt.subplot(223)
plt.title('ring_of_cliques')
nx.draw(ba, with_labels=True, font_weight='bold')
plt.axis('on')
plt.xticks([])
plt.yticks([])red = nx.windmill_graph(4,5)
plt.subplot(224)
plt.title('windmill_graph')
nx.draw(red, with_labels=True, font_weight='bold')
plt.axis('on')
plt.xticks([])
plt.yticks([])plt.show()
5、树
"""
返回随机树
"""
G = nx.random_tree(10)
nx.draw(G,with_labels=True)
参考:
完整的教程
NetworkX系列教程(1)-创建graph
NetworkX系列教程(2)-graph生成器
NetworkX系列教程(3)-手动创建graph
NetworkX系列教程(4)-设置graph的信息
NetworkX系列教程(5)-查看graph的信息
NetworkX系列教程(6)-对graph进行操作
NetworkX系列教程(7)-对graph进行分析
NetworkX系列教程(8)-Drawing Graph
NetworkX系列教程(9)-线性代数相关
图论---问题篇
图论---算法篇
NetworkX系列教程(10)-算法之一:最短路径问题
NetworkX系列教程(10)-算法之二:最小/大生成树问题
NetworkX系列教程(10)-算法之三:关键路径问题
NetworkX系列教程(10)-算法之四:拓扑排序与最大流问题
NetworkX系列教程(10)-算法之五:广度优先与深度优先
NetworkX系列教程(11)-graph和其他数据格式转换
【Python】networkx创建图(1)相关推荐
- NetworkX创建图
[A3]创建图-连接表和邻接表创建图 连接表csv文件如下 创建图 G = nx.DiGraph() #有向 G = nx.Graph() #无向 print(G.is_directed()) # 给 ...
- python networkx 求图中的环_python – 在NetworkX图中获取连接的节点
假设图形是无向的,则有一个内置的networkx命令: node_connected_component(G, n) 文档是here.它返回包含n的G的连通组件中的所有节点. 它不是递归的,但我认为你 ...
- python代码做图_如何用Python代码制作图
Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. 图是一 ...
- PYG教程【二】使用networkx创建一个PYG图
上面通过torch_geometric自带的方式创建了一个图,本节使用networkx包来创建一个图,代码如下: 首先利用networkx创建edge数据: import numpy as np im ...
- Python NetworkX – Python图形库
Python NetworkX module allows us to create, manipulate, and study structure, functions, and dynamics ...
- python绘制人际关系图_干货!利用Python绘制精美网络关系图
Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨tan45du 来源丨袁厨的算法小屋(ID:t ...
- python networkx案例_Python包 - networkx
networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法.图是由顶点.边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系.顶点和边 ...
- python networkx教程_python-networkx学习(1)
介绍: networkx是python的一个库,它为图的数据结构提供算法.生成器以及画图工具.近日在使用ryu进行最短路径获取,可以通过该库来简化工作量.该库采用函数方式进行调用相应的api,其参数类 ...
- python networkx教程_Python 学习教程之networkx
networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法.图是由顶点.边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系.顶点和边 ...
最新文章
- STM32 进阶教程 1 - micropython 移植
- CTF- Reverse迷宫题类型方法特征讲解
- IAR无法goto的解决办法
- Collection集合常用功能
- 金山云纳斯达克敲钟上市 不负时代的机遇
- C语言日志库zlog基本使用
- 【阅读笔记】《创京东:刘强东亲述创业之路》
- win7/win10 密码忘了?没关系,利用5次shift,9步轻松破解密码
- android内存取证,CTF内存取证入门(以安洵杯为例)
- python字典与集合
- 自顶向下的GAMMA显著性——学习搜索复杂场景中的对象
- iOS 12 修改微信提示音,无需越狱不用电脑,详细教程
- Coursera机器学习+deeplearning.ai+斯坦福CS231n
- 简述什么是FBV和CBV
- 这样美化PPT图表,真的好看到爆~
- 单片机 STM32 HAL 温湿度 DS18B20
- android studio create device
- 【IIOT】欧姆龙PLC数采之CJ2系列
- 计算机命令提示符开热点,win7命令行架设无线热点(AP)
- js 实现 输入 年月日 算出 是当年的第几天?