参考:https://blog.csdn.net/qq951127336/article/details/54586869

1.创建图


 networkx有四种图 Graph 、DiGraph、MultiGraph、MultiDiGraph,分别为无多重边无向图、无多重边有向图、有多重边无向图、有多重边有向图。

 import network as nx

 G = nx.Graph()#创建空的网络图

 G = nx.DiGraph()

 G = nx.MultiGraph()

 G = nx.MultiDiGraph()

 #添加点和边:

 G.add_node('a')#添加点a

 G.add_node(1,1)#用坐标来添加点

 G.add_edge('x','y')#添加边,起点为x,终点为y

 G.add_weight_edges_from([('x','y',1.0)])#第三个输入量为权值 也可以

 list = [[('a','b',5.0),('b','c',3.0),('a','c',1.0)]

 G.add_weight_edges_from([(list)])

 #显示:

 #需要导入matplotlib

 import matplotlib.pyplot as plt

 nx.draw(G)

 plt.show()

显示函数:

 nx.draw(G,pos = nx.random_layout(G),node_color = 'b',edge_color = 'r',with_labels = True,font_size =18,node_size =20)

 pos 指的是布局 主要有spring_layout , random_layout,circle_layout,shell_layout。node_color指节点颜色,有rbykw ,同理edge_color.
with_labels指节点是否显示名字,size表示大小,font_color表示字的颜色。

参考:https://networkx.github.io/documentation/latest/tutorial.html#drawing-graphs

2.画出好看的图

 两个主要的函数:

 def draw_networkx_edges(G, pos, edgelist=None, width=1.0, edge_color='k',

          style='solid', alpha=1.0, edge_cmap=None, edge_vmin=None, edge_vmax=None,

          ax=None, arrows=True, label=None, **kwds):

 G:图表 一个networkx图

 pos:dictionary 将节点作为键和位置作为值的字典。 位置应该是长度为2的序列。

 edgelist:边缘元组的集合 只绘制指定的边(默认= G.edges())

 width:float或float数组 边线宽度(默认值= 1.0)

 edge_color:颜色字符串或浮点数组 边缘颜色。可以是单颜色格式字符串(default ='r'),

 或者具有与edgelist相同长度的颜色序列。 如果指定了数值,它们将被映射到 颜色使用edge_cmap和edge_vmin,edge_vmax参数。

 style:string 边线样式(默认='solid')(实线|虚线|点线,dashdot)

 alpha:float 边缘透明度(默认值= 1.0)

 edge_ cmap:Matplotlib色彩映射 用于映射边缘强度的色彩映射(默认值=无)

 edge_vmin,edge_vmax:float 边缘色图缩放的最小值和最大值(默认值=无)

 ax:Matplotlib Axes对象,可选 在指定的Matplotlib轴中绘制图形。

 arrows:bool,optional(default = True) 对于有向图,如果为真,则绘制箭头。

 label:图例的标签

 def draw_networkx_nodes(G, pos, nodelist=None, node_size=300, node_color='r',

           node_shape='o', alpha=1.0, cmap=None, vmin=None, vmax=None, ax=None, linewidths=None, label=None, **kwds):

 pos:dictionary 将节点作为键和位置作为值的字典。 位置应该是长度为2的序列。

 ax:Matplotlib Axes对象,可选 在指定的Matplotlib轴中绘制图形。

 nodelist:list,可选 只绘制指定的节点(默认G.nodes())

 node_size:标量或数组 节点大小(默认值= 300)。如果指定了数组,它必须是 与点头长度相同。

 node_color:颜色字符串或浮点数组 节点颜色。可以是单颜色格式字符串(default ='r'), 或者具有与点头相同长度的颜色序列。

 如果指定了数值,它们将被映射到 颜色使用cmap和vmin,vmax参数。看到 matplotlib.scatter更多详细信息。

 node_shape:string 节点的形状。规格为matplotlib.scatter 标记,'so ^> v <dph8'(默认='o')之一。

 alpha:float 节点透明度(默认值= 1.0)

 cmap:Matplotlib色图 色彩映射节点的强度(默认=无)

 vmin,vmax:float 节点色彩映射缩放的最小值和最大值(默认值=无)

 线宽:[无|标量|序列] 符号边框的线宽(默认值= 1.0)

 label:[无|串] 图例的标签

 然后基本上所有networkx的超酷精美图的源码你都能快速弄懂了。
http://networkx.github.io/ 网络图案例源码 https://networkx.github.io/documentation/latest/auto_examples/index.html#drawing

3.Example:

 import matplotlib.pyplot as plt
import networkx as nx
G = nx.random_geometric_graph(200, 0.125)
# position is stored as node attribute data for random_geometric_graph
pos = nx.get_node_attributes(G, 'pos') # find node near center (0.5,0.5)
dmin = 1
ncenter = 0
for n in pos:
x, y = pos[n]
d = (x - 0.5)**2 + (y - 0.5)**2
if d < dmin:
ncenter = n
dmin = d # color by path length from node near center
p = dict(nx.single_source_shortest_path_length(G, ncenter)) plt.figure(figsize=(8, 8))
nx.draw_networkx_edges(G, pos, nodelist=[ncenter], alpha=0.4)
nx.draw_networkx_nodes(G, pos, nodelist=list(p.keys()),
node_size=80,
node_color=list(p.values()),
cmap=plt.cm.Reds_r) plt.xlim(-0.05, 1.05)
plt.ylim(-0.05, 1.05)
plt.axis('off')
plt.show()
result:

NetworkX-画图的更多相关文章

  1. python网络画图——networkX

    networkX tutorial 绘制基本网络图 用matplotlib绘制网络图 基本流程: 1. 导入networkx,matplotlib包 2. 建立网络 3. 绘制网络 nx.draw() ...

  2. 1 python使用networkx或者graphviz,pygraphviz可视化RNN(recursive)中的二叉树

    代码地址https://github.com/vijayvee/Recursive-neural-networks-TensorFlow 代码实现的是结构递归神经网络(Recursive NN,注意, ...

  3. Python3画图系列——NetworkX初探

    NetworkX 概述 NetworkX 主要用于创造.操作复杂网络,以及学习复杂网络的结构.动力学及其功能.用于分析网络结构,建立网络模型,设计新的网络算法,绘制网络等等.安装networkx看以参 ...

  4. Python科学画图小结

    Python画图主要用到matplotlib这个库.具体来说是pylab和pyplot这两个子库.这两个库可以满足基本的画图需求,而条形图,散点图等特殊图,下面再单独具体介绍. 首先给出pylab神器 ...

  5. 画图工具Graphviz安装配置

    Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形.它也提供了供其它软件使用的库 ...

  6. [Python] networkx入门 转

    networkx是python的一个第三方包,可以方便地调用各种图算法的计算. 通过调用python画图包matplotlib能实现图的可视化. 1.安装 正好整理一下python第三方包的安装方法. ...

  7. NetworkX

    常用网站: 官方文档 Github (latest development) NetworkX官方介绍: ======== NetworkX (NX) is a Python package for ...

  8. 『Networkx』常用方法

    这是一个用于分析'图'结构的包,由于我只是用到了浅显的可视化功能,所以这个介绍会对其使用浅尝辄止. 解决matplotlib中文字体缺失问题, from pylab import mpl mpl.rc ...

  9. Python基础-画图:matplotlib

    Python画图主要用到matplotlib这个库.具体来说是pylab和pyplot这两个子库.这两个库可以满足基本的画图需求. pylab神器:pylab.rcParams.update(para ...

  10. networkX用法整

    无向图,有向图,加权图等例子代码 [http://www.cnblogs.com/kaituorensheng/p/5423131.html#_label1] 数据分析学习笔记(三)-NetworkX ...

随机推荐

  1. vc6中关于“新建”

    1.windows api 编程:新建→工程→Win32 Application→一个空工程→新建→文件→C++ Source File2.windows mfc 编程:新建→工程→MFC AppWi ...

  2. DB2导出表结构、表数据小结

    一.DB2命令行导出数据库全库表结构 ① Win+R进入到DB2安装目录的BIN目录下,执行命令:DB2CMD,进入到DB2 CLP窗口. 命令:DB2CMD ② 创建一个data文件夹 命令:MKD ...

  3. Pyhton学习——Day59

    参考博客: http://www.cnblogs.com/wupeiqi/articles/6144178.html Form 1. 验证 2. 生成HTML(保留上次输入内容) 3. 初始化默认是 ...

  4. Java并发和多线程3:线程调度和有条件取消调度

    在第1篇中"并发框架基本示例",提到了Executors和ThreadPool.其中,还有个"定时调度"的方法,Executors.newScheduledTh ...

  5. css3特效第一篇--旋转的背景&翻书效果

    一.html遮盖层与css3的旋转动画 >效果图(加载可能会慢一点儿,请稍等...): >实现思路:在一个大的div中装入一个底层img和顶层的div(里面的内容按照以上图片呈现的样式布局 ...

  6. HDU 4311 Contest 2

    求的是曼哈顿距离.可以把X,Y的距离分开来求.其中,求X.Y的距离可以通过排序后递推的方式求出值的. #include <iostream> #include <algorithm& ...

  7. atitit。企业组织与软件project的策略 战略 趋势 原则 attilax 大总结

    atitit. 企业组织与软件project的策略 战略 趋势 原则 attilax 大总结 1. 战略规划,适当的过度设计 1 2. 跨平台化 1 3. 可扩展性高于一切 1 4. 界面html5化 ...

  8. 初识Dubbo 系列之5-Dubbo 成熟度

    成熟度 功能成熟度 Feature特征 Maturity成熟度 Strength强度 Problem问题 Advise建议 User用户 并发控制 Tested 并发控制   试用   连接控制 Te ...

  9. POJ 题目2774 Long Long Message(后缀数组,求最长公共子串长度)

    Long Long Message Time Limit: 4000MS   Memory Limit: 131072K Total Submissions: 23696   Accepted: 97 ...

  10. ActionBarActivity设置全屏无标题

    新建的Activity继承自ActionBarActivity,设置全屏无标题本来非常easy的事,可是没想到app居然无缘无故的挂,要么就是白屏一片,要么就是黑屏.坑了我一个多小时.!! 原因是Ac ...