read_graphml#

read_graphml(path, node_type=<class 'str'>, edge_key_type=<class 'int'>, force_multigraph=False)[source]#

从路径读取GraphML格式的图。

Parameters:
path文件或字符串

要写入的文件或文件名。 以.gz或.bz2结尾的文件名将被压缩。

node_type: Python类型(默认:str)

将节点ID转换为此类型

edge_key_type: Python类型(默认:int)

将GraphML边ID转换为此类型。多图使用ID作为边键。 非多图将ID添加到边属性字典中,名称为”id”。

force_multigraph布尔值(默认:False)

如果为True,返回一个带边键的多图。如果为False(默认), 当图中有多重边时返回多图。

Returns:
graph: NetworkX图

如果存在平行边或 force_multigraph=True ,则返回MultiGraph或MultiDiGraph。 否则返回Graph/DiGraph。如果文件指示应为有向图,则返回的图是有向的。

Notes

默认节点和边属性不会传播到每个节点和边。 它们可以从 G.graph 中获取,并在需要时应用于节点和边属性,例如:

>>> default_color = G.graph["node_default"]["color"]  
>>> for node, data in G.nodes(data=True):  
...     if "color" not in data:
...         data["color"] = default_color
>>> default_color = G.graph["edge_default"]["color"]  
>>> for u, v, data in G.edges(data=True):  
...     if "color" not in data:
...         data["color"] = default_color

此实现不支持混合图(有向和无向边混合)、超图、嵌套图或端口。

对于多图,GraphML边”id”将用作边键。如果没有指定,则使用”key”属性。 如果没有”key”属性,将提供默认的NetworkX多图边键。

可以读取带有yEd “yfiles”扩展名的文件。节点的形状类型保存在 shape_type 节点属性中。

可以读取yEd压缩文件(”file.graphmlz”扩展名),通过将其重命名为”file.graphml.gz”。