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

来源:互联网 发布:gentoo linux 论坛 编辑:程序博客网 时间:2024/05/17 09:32

准备知识:
<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)
废话不多说,直接上自己写的例子。简单点的例子在上面给的链接里有教程,根据需求不同,我的例子是自己看了一天文档试出来的。

代码块

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(邻接矩阵)

画的图比较粗糙,要好看还得继续调参数。但是总算是找到一个好用的工具了。希望对大家有用。。。
这里写图片描述

原创粉丝点击