目录

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)相关推荐

  1. NetworkX创建图

    [A3]创建图-连接表和邻接表创建图 连接表csv文件如下 创建图 G = nx.DiGraph() #有向 G = nx.Graph() #无向 print(G.is_directed()) # 给 ...

  2. python networkx 求图中的环_python – 在NetworkX图中获取连接的节点

    假设图形是无向的,则有一个内置的networkx命令: node_connected_component(G, n) 文档是here.它返回包含n的G的连通组件中的所有节点. 它不是递归的,但我认为你 ...

  3. python代码做图_如何用Python代码制作图

    Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. 图是一 ...

  4. PYG教程【二】使用networkx创建一个PYG图

    上面通过torch_geometric自带的方式创建了一个图,本节使用networkx包来创建一个图,代码如下: 首先利用networkx创建edge数据: import numpy as np im ...

  5. Python NetworkX – Python图形库

    Python NetworkX module allows us to create, manipulate, and study structure, functions, and dynamics ...

  6. python绘制人际关系图_干货!利用Python绘制精美网络关系图

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨tan45du 来源丨袁厨的算法小屋(ID:t ...

  7. python networkx案例_Python包 - networkx

    networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法.图是由顶点.边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系.顶点和边 ...

  8. python networkx教程_python-networkx学习(1)

    介绍: networkx是python的一个库,它为图的数据结构提供算法.生成器以及画图工具.近日在使用ryu进行最短路径获取,可以通过该库来简化工作量.该库采用函数方式进行调用相应的api,其参数类 ...

  9. python networkx教程_Python 学习教程之networkx

    networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法.图是由顶点.边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系.顶点和边 ...

最新文章

  1. STM32 进阶教程 1 - micropython 移植
  2. CTF- Reverse迷宫题类型方法特征讲解
  3. IAR无法goto的解决办法
  4. Collection集合常用功能
  5. 金山云纳斯达克敲钟上市 不负时代的机遇
  6. C语言日志库zlog基本使用
  7. 【阅读笔记】《创京东:刘强东亲述创业之路》
  8. win7/win10 密码忘了?没关系,利用5次shift,9步轻松破解密码
  9. android内存取证,CTF内存取证入门(以安洵杯为例)
  10. python字典与集合
  11. 自顶向下的GAMMA显著性——学习搜索复杂场景中的对象
  12. iOS 12 修改微信提示音,无需越狱不用电脑,详细教程
  13. Coursera机器学习+deeplearning.ai+斯坦福CS231n
  14. 简述什么是FBV和CBV
  15. 这样美化PPT图表,真的好看到爆~
  16. 单片机 STM32 HAL 温湿度 DS18B20
  17. android studio create device
  18. 【IIOT】欧姆龙PLC数采之CJ2系列
  19. 计算机命令提示符开热点,win7命令行架设无线热点(AP)
  20. js 实现 输入 年月日 算出 是当年的第几天?

热门文章

  1. uniapp中的picker选择器
  2. ILSpy反编译工具
  3. c如何将数组初始化为0?
  4. maven配置多仓库,第一个库没有,找第二个库
  5. 零基础解读ChatGPT:对人类未来工作是威胁还是帮助?
  6. 如何学习Java?谈Java学习之路
  7. Web前端期末大作业-重庆旅游景区网页设计(HTML+CSS+JS)
  8. 交叉编译工具链建立与常识
  9. 谷歌网页翻译失效解决方法
  10. linux内核snat分析,Linux2.6.29.6内核netfilter代码中SNAT的过程跟踪