python-igraph创建网络(图)


igraph包含了很多创建网络和显示网络的功能,后面专门讲述绘制网络功能,这边为了查看方便,先plot函数绘制网络

1.网络布局

1)layout_bipartite(types="type", hgap=1, vgap=1, maxiter=100)放置二分图到两个层,types为定点类型,hgap为最小水平间隔,vgap为垂直间隔,maxiter为最大迭代次数
2)layout_circle(dim=2, order=None)放置顶点到圆或球表面,dim为维度,order顶点顺序,layout_sphere(*args, **kwds)layout_circle()为其简化版
3)layout_davidson_harel(seed=None, maxiter=10, fineiter=-1,cool_fact=0.75, weight_node_dist=1.0, weight_border=0.0,weight_edge_lengths=-1, weight_edge_crossings=-1,weight_node_edge_dist=-1)采用Davidson-Harel算法放置顶点到二维空间,seed为初始位置,maxiter为迭代次数,fineiter为精细调整迭代次数,cool_fact为冷却系数,weight_node_dist顶点-顶点距离权重,weight_border边沿距离权重,weight_edge_lengths为边距离权重, weight_edge_crossings边交叉权重,weight_node_edge_dist顶点-边距离权重
4)layout_drl(weights=None, fixed=None, seed=None, options=None, dim=2)采用DrL算法放置顶点到二维或三维空间,适用于大图,weights为边权重,seed为其实位置,fixed指定固定位置顶点,options为可选参数,dim为维度
5)layout_fruchterman_reingold(weights=None, niter=500, seed=None,start_temp=None, minx=None, maxx=None, miny=None, maxy=None,minz=None, maxz=None, grid="auto")用Fruchterman-Reingold算法放置顶点到二维平面,weights为边权重,nier为迭代次数,start_temp起始温度,minx/maxx/miny/maxy/minz/maxz为坐标范围,seed为起始位置,grid是否启用网格位置提升速度,layout_fruchterman_reingold_3d(*args, **kwds)layout_fruchterman_reingold()为其简化版
6)layout_graphopt(niter=500, node_charge=0.001, node_mass=30,spring_length=0, spring_constant=1, max_sa_movement=5, seed=None)每个顶点定义吸引力和排斥力进行顶点布局,niter为迭代次数,node_change为顶点改变量用于计算排斥力,node_mass为顶点质量,计算弹力,spring_length计算弹簧长度,spring_constant弹簧系数,max_sa_movement单步允许最大移动量,seed初始位置
7)layout_grid(width=0, height=0, dim=2)放置顶点到二维或三维网格,width为每个定点数,height为每列定点数,dim为维度,layout_grid_3d(*args, **kwds)和layout_grid()为其简化版
8)layout_kamada_kawai(maxiter=1000, seed=None, maxiter=1000,epsilon=0, kkconst=None, minx=None, maxx=None, miny=None,maxy=None, minz=None, maxz=None, dim=2)根据kamada_kawai算法放置顶点到平面,maxiter为最大迭代次数,seed为None开始随机放置,为矩阵时为初始位置,epsilon系统能量改变小于该值时停止迭代,kkconst为顶点吸引常数,minx/maxx/miny/maxy/minz/maxz为三维坐标的范围,dim为布局维度,layout_kamada_kawai_3d(*args, **kwds)layout_kamada_kawai()为其简化版
9)layout_lgl(maxiter=150, maxdelta=-1, area=-1, coolexp=1.5,repulserad=-1, cellsize=-1, root=None)根据大图布局方法将顶点放置到二维平面中,maxiter为迭代次数,maxdelta为每次迭代时最大移动距离,area顶点放置的区域大小,coolexp模拟退火系数,repulserad确定顶点-顶点排斥半径,cellsize确定格点大小,root最早放置的顶点
10)layout_mds(dist=None, dim=2, arpack_options=None)将顶点部署在给定距离矩阵的二维或三维平面中,dist为顶点对称距离矩阵,dim为维度
11)layout_random(dim=2)随机布局图顶点到二维画布
12)layout_random_3d(*args, **kwds)随机布局图顶点到三维画布
13)layout_random()随机布局图顶点到二维画布
14)layout_reingold_tilford(mode="out", root=None, rootlevel=None)以Reingold-Tilford布局算法将顶点放置到二维平面,这是一个树形布局方式。如果给定的图不是一棵树,将会采用广度优先搜索算法获得展开树。mode为指定那些边需要考虑,可以为OUT/IN/ALL,root给定根节点,rootlevel用于绘制森林时指定树的高度
15)layout_reingold_tilford_circular(mode="out", root=None,rootlevel=None)按照环形Reingold-Tilford布局算法显示树结构
16)layout_star(center=0, order=None)以星型方式布局,center为放在中心的顶点ID,order顶点列表顺序否则按升序放置
17)layout_sugiyama(layers=None, weights=None, hgap=1, vgap=1,maxiter=100, return_extended_graph=False)采用层叠Sugiyama布局方式放置顶点,大多数在有向非周期图是使用,每个顶点放到一个层,每个层放到水平线上。layers为每个顶点的层列表,weights为每个边的属性名,hgap为最小水平间隔,vgap垂直间隔,maxiter为迭代次数。
18)layout(self, layout=None, *args, **kwds)。Graph类提供了通用的layout方法,通过参数实现以上所有的layout,具体包括auto、bipartite、circle、dh、drl、drl_3d、fr、fr_3d、grid、grid_3d、graphopt、kk、kk_3d、lgl、mds、random、random_3d、rt、rt_circular、sphere、star、sugiyama。
19)layout_auto(self, *args, **kwds)自动根据网络属性和特性选择layout方式

2.显示网络

  1. igraph.drawing.plot(obj, target=None, bbox=(0, 0, 600, 600), *args, **kwds)是基本的网络显示函数。obj:要绘制的网络对象;target:可以是None(自动创建画布)、cairo.Surface对象(具体可以使PNG图片、任意窗口对象、SVG文件或其它Cairo可以处理的对象)、string(字符串形式给出的PNG/PDF/SVG/PostScript文件);bbox:画布边框,可以以二元组给出高度和宽度,四元组给出两个对角线坐标,如果是PNG或屏幕绘制以像素为单位,如果是PDF/SVG/PostScript绘制以点为单位:72pt=1inch=2.54cm;opacity:不透明度(0~1),当需要将多个图绘制到同一个画布时可以重叠在一起;palette:调色板;margin:以四元组形式给出画布上下左右空白区域大小
    2)Graph本身具有__plot__(self, context, bbox, palette, *args, **kwds)方法,但是不会直接调用,而是用前述的函数间接调用。

3.保存网络

GraphBaseGraph均提供了保存网络的方法或函数,通常直接调用Graph的方法,下面直接给出所有的方法或函数列表,读取和写入基本一一对应,就没有再给出。
GraphBase保存图的方法
1)write_dimacs(f, source, target, capacity=None) ***以DIMACS格式保存图到文件,f为文件名,source为顶点ID,target为目标ID,capacity为列表中边的容量
2)write_dot(f )以DOT格式保存图到文件,DOT格式是GraphViz软件使用的格式
3)write_edgelist(f )以边列表形式保存图到文件,f为文件名
4)write_gml(f, creator=None, ids=None)以GML格式保存图,f为文件名,creator可选创建者信息,ids为可选写入顶点列表
5)write_graphml(f )以GraphML格式保存图,f为文件名
6)write_leda(f, names="name", weights="weights")以LEDA本地格式保存图到文件,LEDA格式的每个顶点和边都最多支持一个属性但是没有保存属性名,f为文件名,names为需要保存的顶点名列表,weights为需要保存的边权重属性名
7)write_lgl(f, names="name", weights="weights", isolates=True)以lgl格式写图的边列表到文件,不允许写多重边图,f为文件名,names为需要保存的顶点名列表,weights为需要保存的边权重属性名,isolates指示是否写入孤立顶点
8)write_ncol(f, names="name", weights="weights")以.ncol格式将图的边列表写到文件,不允许写多重边图,f为文件名,names为需要保存的顶点名列表,weights为需要保存的边权重属性名
9)write_pajek(f)以Pajeck格式保存图到文件
Graph保存图的方法
基本和GraphBase一一对应,以对象方法的形式提供
10)write_adjacency(self, f, sep=’ ’, eol=’\n’, *args, **kwds)写邻接矩阵到文件,f为文件名,sep为矩阵元素间隔符,eol为矩阵行间隔符
11)write_dimacs(self, f, source=None, target=None, capacity=’capacity’)以DIMACS格式保存图,覆盖同名函数
12)write_graphmlz(self, f, compresslevel=9)以GraphML格式保存图,f为文件名,compresslevel为压缩级别
13)write_pickle(self, fname=None, version=-1)以Python picled格式保存图,fname为文件名,version为pickle协议版本号
14)write_svg(self, fname, layout=’auto’, width=None, height=None, labels=’label’, colors=’color’, shapes=’shape’, vertex_size=10, edge_colors=’color’, edge_stroke_widths=’width’, font_size=16, *args, **kwds)以SVG格式保存图,可以用Inkscape打开编辑,fname为文件名,layout为图的布局(可以使坐标对列表或layout算法名),width为pixel为单位宽度,height为以pixel为单位的高度,labels顶点标签(顶点属性名或直接以列表具体给出),colors为顶点颜色(顶点属性名或直接以列表具体给出),shapes为顶点形状(顶点属性名或形状编号),vertex_size为以pixel给出的顶点大小,edge_colors边颜色(边属性名或直接以列表具体给出),edge_stroke_widths边宽度(边属性名或直接以列表具体给出),font_size为字体大小
15)save(self, f, format=None, *args, **kwds)支持以上所有的保存方法,其通过f的扩展名识别调用的具体图保存方法,f为包含扩展名的文件名,format通过字符串制定具体保存格式(None从文件名推断,adjacency以邻接矩阵格式,dimacs以DIMACS格式,dot或graphviz以GraphViz DOT格式,edgelist/edges/edge以数值边列表格式,gm以GML格式,graphml/graphmlz以标准GraphML格式,gw/leda/lgr以LEDA本地格式,lgl以LGL格式,ncol以NCOL格式,net/pajek以Pajek格式,pickle/picklez以标准Python pickled格式,svg以SVG格式),其它参数则直接传递给底层的保存方法。
16)writesave具有相同的功能,
17)loadread具有相同功能,且对应于保存图格式的方式读取图。

4.创建网络

1).默认构造函数创建
__init__(n=0, edges=None, directed=False, graph_attrs=None,vertex_attrs=None, edge_attrs=None)给出顶点数、边列表、方向标志、图属性、节点属性、边属性
实例:

import igraph as ig
g=ig.Graph(n=8,edges=[(0,1),(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,0)],directed=True,graph_attrs="graph_name":"cicle"},vertex_attrs={"id":[0,1,2,3,4,5,6,7]})
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.5,margin=(10,10,10,10))

生成的网络
2.连接矩阵创建图,给出邻接矩阵和创建模式
Adjacency(matrix, mode=ADJ_DIRECTED)以连接矩阵形式创建有向或无向网络,matrix以二维矩阵形式给出连接矩阵,mode可以是字符串或常数形式的网络类型

import igraph as ig
g=ig.Graph.Adjacency(matrix=[[0,1,1,1],[1,0,1,1],[1,1,0,1],[1,1,1,0]],mode="DIRECTED")
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

网络输出结果
在这里插入图片描述
3.非对称定点类型和连接分布创建图
Asymmetric_Preference(n, type_dist_matrix, pref_matrix,attribute=None, loops=False)n给出定点数,type_dist_matrix为定点类型联合分布,pref_matrix为不同顶点类型间的连接分布

import igraph as ig
g=ig.Graph.Asymmetric_Preference(n=4,type_dist_matrix=[[0,1,1,1],[1,0,1,1],[1,1,0,1],[1,1,1,0]],pref_matrix=[[0,1,1,1],[1,0,1,1],[1,1,0,1],[1,1,1,0]])
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的网络输出
在这里插入图片描述
4.产生Atlas图
Atlas(idx )根据索引产生Atlas图,idx为从0开始的索引

import igraph as ig
g=ig.Graph.Atlas(1000)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

输出网络
在这里插入图片描述
5.基于 Barabasi-Albert模型产生图
Barabasi(n, m, outpref =False, directed=False, power=1, zero_appeal=1,implementation="psumtree", start_from=None)
n为顶点数,m为每个顶点引出的平均边数,outpref出度是否随着入度增加,directed是否有向图,power非线性模型的幂常数,zero_appeal零度顶点的引力,implementation产生网络的算法,start_from为起始图。

import igraph as ig
g=ig.Graph.Barabasi(100,3,outpref=True,directed=True)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

生成的网络为
在这里插入图片描述
6.Bruijn图
De_Bruijn(m, n)产生具有m^n个节点的Bruijn图

import igraph as ig
g=ig.Graph.De_Bruijn(2,10)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图为
在这里插入图片描述
7.根据度序列产生图
Degree_Sequence(out, in=None, method="simple")产生具有特定度序列的图,out为出度序列,in为入度序列,method为生成方法

import igraph as ig
g=ig.Graph.Degree_Sequence(out=[2,2,2,4])
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

在这里插入图片描述
8.ER随机图
Erdos_Renyi(n, p, m, directed=False, loops=False)根据Erdos-Renyi模型生成随机图,n为顶点个数,p为边概率,m为边数,directed是否产生有向图,loops是否允许自环。给定p是就不要给定m,给定m就不要给定p。

import igraph as ig
g=ig.Graph.Erdos_Renyi(n=100,p=0.3)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

生成的网络
在这里插入图片描述
9.根据生长模型产生图
Establishment(n, k, type_dist, pref_matrix, directed=False)基于简单生长模型采用定点类型生产图,n为顶点数,k为每步试图新增边数,type_dist为顶点类型,pref_matrix为不同顶点类型的连接概率分布。

import igraph as ig
g=ig.Graph.Establishment(n=100,k=10,type_dist=[1,1,2],pref_matrix=[[0,1,1],[1,0,1],[1,1,0]])
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

在这里插入图片描述

10.产生典型图
Famous(name)产生典型图,name为字符串形式图名。

import igraph as ig
g=ig.Graph.Famous("Chvatal")
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图输出
在这里插入图片描述

11.根据林火模型产生图
Forest_Fire(n, fw_prob, bw_factor=0.0, ambs=1, directed=False)是一个生长模型,n为顶点数,fw_prob为向前燃烧概率,bw_factor为前向和后向燃烧概率比。

import igraph as ig
g=ig.Graph.Forest_Fire(n=100,fw_prob=0.8)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

生产的图
在这里插入图片描述

12.产生完全图
Full(n, directed=False, loops=False)产生完全图,n为顶点数

import igraph as ig
g=ig.Graph.Full(n=50)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

生产的图输出
在这里插入图片描述

13.产生完全引用图
Full_Citation(n, directed=False)产生引用图,n为顶点数

import igraph as ig
g=ig.Graph.Full_Citation(n=10)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的完全引用图
在这里插入图片描述
14.产生生长随机图
Growing_Random(n, m, directed=False, citation=False)基于生长模型产生随机图,n为顶点数,m为每步增加的边数,directed指示是否有向,citation指示新增加的边必须由最近新增的顶点产生。

import igraph as ig
g=ig.Graph.Growing_Random(n=100,m=2)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的网络
在这里插入图片描述

15.给定同构类产生图
Isoclass(n, class, directed=False)根据同构类产生图,n为顶点数,class为同构类

16.产生K规则随机图
K_Regular(n, k, directed=False, multiple=False)产生k规则随机图,n为顶点数,k为每个顶点度

import igraph as ig
g=ig.Graph.K_Regular(10,k=3)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的规则图
在这里插入图片描述
17.产生Kautz图
Kautz(m, n)产生Kautz图,m为字母表大小减1,n为字符串长度减1

import igraph as ig
g=ig.Graph.Kautz(m=5,n=2)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的Kautz图为
在这里插入图片描述

18.根据LCF记号产生图
LCF(n, shifts, repeats)根据LCF记号产生图,n为顶点数,shifts为偏移列表或元组,repeats为重复次数

import igraph as ig
g=ig.Graph.LCF(n=100,shifts=[1,2],repeats=10)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图为
在这里插入图片描述
19.产生规则网格图
Lattice(dim, nei=1, directed=False, mutual=True, circular=True)产生网格图,dim为网格维度,nei为两个顶点距离,directed是否有向图

import igraph as ig
g=ig.Graph.Lattice(dim=[10,10])
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的网格图
在这里插入图片描述
20.根据顶点类型和连接分布产生图
Preference(n, type_dist, pref_matrix, attribute=None, directed=False,loops=False)根据定点类型和连接概率产生图,n为顶点个数,type_dist为类型分布,pref_matrix为连接偏好

import igraph as ig
g=ig.Graph.Preference(n=100,type_dist=[1,2],pref_matrix=[[0.1,0.9],[0.9,0.1]])
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图为
在这里插入图片描述
21.基于随机模型产生边分布图
Recent_Degree(n, m, window, outpref =False, directed=False, power=1)基于一个随机模型产生图,n为顶点数,m为每个顶点的出度,windows为每个时间步的窗口大小

import igraph as ig
g=ig.Graph.Recent_Degree(n=100,m=3,window=2)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图
在这里插入图片描述

22.产生环形图
Ring(n, directed=False, mutual=False, circular=True)产生环图,n为顶点数量

import igraph as ig
g=ig.Graph.Ring(n=100)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图
在这里插入图片描述

23.根据随机块模型产生图
SBM(n, pref_matrix, block_sizes, directed=False, loops=False)根据随机块模型产生图,n为顶点数,pref_matrix为不同顶点连接概率分布,block_size为每个块的顶点数。

import igraph as ig
g=ig.Graph.SBM(n=100,pref_matrix=[[0.1,0.9],[0.9,0.1]],block_sizes=[30,70])
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图
在这里插入图片描述

24.产生星型图
Star(n, mode="undirected", center=0)产生星型图,n为顶点数

import igraph as ig
g=ig.Graph.Star(n=100)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的星型图
在这里插入图片描述

25.根据边概率产生非生长图
Static_Fitness(m, fitness_out, fitness_in=None, loops=False,multiple=False)产生正比于顶点适应度的边分布的图,m为边数,fitness_out为顶点适应度

import igraph as ig
g=ig.Graph.Static_Fitness(m=10,fitness_out=[1,1,1,1,1])
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图
在这里插入图片描述

26.产生幂率图
Static_Power_Law(n, m, exponent_out, exponent_in=-1, loops=False,multiple=False, finite_size_correction=True)产生具有特定顶点数和边数且遵循幂率度分布的图

import igraph as ig
g=ig.Graph.Static_Power_Law(n=50,m=200,exponent_out=2.1)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图
在这里插入图片描述

27.产生树
Tree(n, children, type=TREE_UNDIRECTED)根据顶点数和孩子数产生树,n为顶点数,children为孩子数

import igraph as ig
g=ig.Graph.Tree(n=100,children=10)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的树
在这里插入图片描述

28.产生Watts_Strogatz图
Watts_Strogatz(dim, size, nei, p, loops=False, multiple=False)产生Watts_Strogatz图,dim为维度,size为各维大小,nei为格点距离,p为重连概率

import igraph as ig
g=ig.Graph.Watts_Strogatz(dim=2,size=10,nei=1,p=0.1)
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的网络
在这里插入图片描述

29.根据权重矩阵产生图
Weighted_Adjacency(matrix, mode=ADJ_DIRECTED, attr="weight",loops=True)根据连接矩阵产生图,matrix为连接矩阵,mode为图的模式

import igraph as ig
g=ig.Graph.Weighted_Adjacency(matrix=[[0,1,2,3],[1,0,1,2],[1,1,0,4],[1,1,1,0]],mode="DIRECTED")
g.layout_grid()
ig.plot(g,"d:\\tmp.png",bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))

产生的图
在这里插入图片描述

未完待续

30.DictList(klass, vertices, edges, directed=False, vertex_name_attr=’name’,edge_foreign_keys=(’source’, ’target’), iterative=False)
31.TupleList(klass, edges, directed=False, vertex_name_attr=’name’,edge_attrs=None, weights=False)
32.Formula(Graph, formula=None, attr="name", simplify=True)
33.Bipartite(types, edges, directed=False)
34.Full_Bipartite(n1, n2, directed=False, mode=ALL)
35.Random_Bipartite(n1, n2, p=None, m=None, directed=False,neimode=ALL)
36.GRG(n, radius, torus=False, return_coordinates=False)
37.Incidence(matrix, directed=False, mode=ALL, multiple=False,weighted=None)
38.DataFrame(edges, directed=True, vertices=None)
39.bipartite_projection(self, types=’type’, multiplicity=True, probe1=-1,which=’both’)
40.from_networkx(klass, g)和to_networkx(self )可以在networkx和igraph网络格式之间相互转换。
41.从连接矩阵文件读取图
import igraph as ig
g=ig.Graph.Weighted_Adjacency(matrix=[[0,1,2,3],[1,0,1,2],[1,1,0,4],[1,1,1,0]],mode=“DIRECTED”)
g.layout_grid()
ig.plot(g,“d:\tmp.png”,bbox=(1200,1200),opacity=0.9,margin=(10,10,10,10))
g.save(“d:\test.Adjacency”,format=“adjacency”)
f=ig.load(“d:\test.Adjacency”,format=“adjacency”)
ig.plot(f)
其它方式均相同,可以保存图到文件,并读取
42.从DIMACS文件读取图
43.从UCINET DL文件读取图
44.读取边列表文件创建图
45.读取GML文件创建图
46.读取GraphDB格式文件创建图
47.读取GraphML格式文件创建图
48.读取LGL格式文件创建图
49.读取Pajek格式文件创建图

  • 13
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值