如何用python画多层网络--pmnet

准备知识:
<1>.pymnet手册(http://www.mkivela.com/pymnet/tutorial.html)
<2>.学会构造UCIENT数据(http://www.analytictech.com/networks/dataentry.htm)
<3>.函数使用官方教程(http://people.maths.ox.ac.uk/kivela/mln_library/autogen/pymnet.draw.html#pymnet.draw)
<4>. 下载pymnet(https://bitbucket.org/bolozna/multilayer-networks-library/downloads/)
废话不多说,直接上自己写的例子。简单点的例子在上面给的链接里有教程,根据需求不同,我的例子是自己看了一天文档试出来的。

代码块

from pymnet import *    
net=read_ucinet("X.txt",couplings="none")               
  fig =draw(net,
          layerColorDict={"epidemic layer ":"pink","information layer":"gray"},   
          layout="random",
          defaultNodeLabel=1,    
          defaultNodeLabelSize=4, 
          defaultNodeColor='red',    
          defaultNodeLabelColor='y',   
          nodeSizeRule={"rule":"degree","propscale":0.01},     
          alignedNodes=0,                    
          layergap=0.6,                          
          backend ='mpl',
          autoscale=1,
          defaultEdgeWidth=0.05,
          defaultEdgeColor='black',      
          )
  fig.savefig("D:\\net3.pdf")

上面是代码,能实现基本需求,如果还要更复杂的,就要自己琢磨官方文档了。
UCIENT这个没有很好的参考文档,如果你要画五层网络,你就把五层网络的邻接矩阵都输到X.txt中。注意文件头部的编写。DL是文件识别头,N是节点,NM是层数,format是你的文件格式,可以是edgelist,也可以是邻接矩阵
level labels以及下面的是五层网络各自的名字,data:下面是五个邻接矩阵
DL
N=61 NM=5
FORMAT = FULLMATRIX DIAGONAL PRESENT
LEVEL LABELS:
epidemic layer
information layer
tt
tts
yy
DATA:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(邻接矩阵)

画的图比较粗糙,要好看还得继续调参数。但是总算是找到一个好用的工具了。希望对大家有用。。。
如何用python画多层网络--pmnet_第1张图片

你可能感兴趣的:(编程)