博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用networkx-python绘制点边图
阅读量:4286 次
发布时间:2019-05-27

本文共 2341 字,大约阅读时间需要 7 分钟。

原文地址:https://my.oschina.net/sanpeterguo/blog/195390

环境:win7(AMD32bit) + python2.6 + network1.8.1

依赖:

  1. numpy https://pypi.python.org/packages/2.6/n/numpy/numpy-1.6.1.win32-py2.6.exe#md5=67e0c10cf55b713bd27cbba94dee9673

  2. pyparsing http://ncu.dl.sourceforge.net/project/pyparsing/pyparsing/pyparsing-2.0.1/pyparsing-2.0.1.win32-py2.6.exe

  3. datautil https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.2.tar.gz#md5=c1f654d0ff7e33999380a8ba9783fd5c

  4. matplotlib http://ncu.dl.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.3.1/matplotlib-1.3.1.win32-py2.6.exe

  5. networkx https://pypi.python.org/packages/source/n/networkx/networkx-1.8.1.zip#md5=4a90328898d9db29bbb12ef3e6223bab

  6. six https://pypi.python.org/packages/source/s/six/six-1.5.2.tar.gz#md5=322b86d0c50a7d165c05600154cecc0a


安装:bulabula...

源码:

有向图

#-*- coding:utf8-*-import networkx as nximport matplotlib.pyplot as pltG = nx.DiGraph()G.add_node(1)G.add_node(2)G.add_nodes_from([3,4,5,6])G.add_cycle([1,2,3,4])G.add_edge(1,3)G.add_edges_from([(3,5),(3,6),(6,7)])nx.draw(G)plt.savefig("youxiangtu.png")plt.show()

8节点完全图

import networkx as nximport matplotlib.pyplot as pltG = nx.complete_graph(8)nx.draw(G)plt.savefig("8nodes.png")plt.show()

无向图

#-*- coding:utf8-*-import networkx as nximport matplotlib.pyplot as pltG = nx.Graph()G.add_node(1)G.add_node(2)G.add_nodes_from([3,4,5,6])G.add_cycle([1,2,3,4])G.add_edge(1,3)G.add_edges_from([(3,5),(3,6),(6,7)])nx.draw(G)plt.savefig("wuxiangtu.png")plt.show()

颜色节点图

import networkx as nximport matplotlib.pyplot as pltG = nx.Graph()G.add_edges_from([(1,2),(1,3),(1,4),(1,5),(4,5),(4,6),(5,6)])pos = nx.spring_layout(G)colors = [1,2,2,2,3,1]nx.draw_networkx_nodes(G,pos,node_color=colors)nx.draw_networkx_edges(G,pos)plt.axis('off')plt.savefig("color_nodes.png")plt.show()

效果:

计算:

import networkx as nximport matplotlib.pyplot as plt#计算1:求无向图的任意两点间的最短路径G = nx.Graph()G.add_edges_from([(1,2),(1,3),(1,4),(1,5),(4,5),(4,6),(5,6)])path = nx.all_pairs_shortest_path(G)print path[1]#计算2:求出图中在环上的点G = nx.Graph()G.add_edges_from([(1,2),(1,3),(1,4),(1,5),(4,5),(4,6),(5,6)])path = nx.all_pairs_shortest_path(G)print path[1]

输出:

{1: [1], 2: [1, 2], 3: [1, 3], 4: [1, 4], 5: [1, 5], 6: [1, 4, 6]}

{1: [1], 2: [1, 2], 3: [1, 3], 4: [1, 4], 5: [1, 5], 6: [1, 4, 6]}

参考:

不错的帖子:http://blog.sina.com.cn/s/blog_720448d301018px7.html

转载地址:http://ymxgi.baihongyu.com/

你可能感兴趣的文章
使用http请求,中文乱码问题--解决方法
查看>>
mybatis入门之接口式编程
查看>>
html页面中iframe嵌套页面的父页面和子页面js方法互相调用
查看>>
求字符串中变换位置问题
查看>>
求这个字符串中的最大的数字字符串
查看>>
Spring报错:java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to *
查看>>
Java一键启动Linux上的tomcat服务器
查看>>
java实现导出excel表到磁盘上(三)---完整封装,可直接使用
查看>>
json.loads
查看>>
快速截屏小工具
查看>>
如何用github发布Axure原型
查看>>
selenium RC+JAVA 运行所遇到的问题
查看>>
python运行时提示WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
查看>>
selenuim +python环境配置遇到的诸多问题
查看>>
selenium + python自动化测试环境搭建
查看>>
轻松自动化---selenium-webdriver(python) (一)
查看>>
轻松自动化---selenium-webdriver(python) (二)---打印URL,设置浏览器固定宽前进后退等
查看>>
怎么做前端fiddle代理
查看>>
轻松自动化---selenium-webdriver(python) (三) 简单元素的定位
查看>>
selenium python 常用方法总结
查看>>