parse_graphml#
- parse_graphml(graphml_string, node_type=<class 'str'>, edge_key_type=<class 'int'>, force_multigraph=False)[source]#
从字符串中读取GraphML格式的图。
- Parameters:
- graphml_string字符串
包含graphml信息的字符串 (例如,graphml文件的内容)。
- node_type: Python类型(默认:str)
将节点ID转换为此类型
- edge_key_type: Python类型(默认:int)
将graphml边ID转换为此类型。多图使用ID作为边键。 非多图将ID添加到边属性字典中,名称为”id”。
- force_multigraph布尔值(默认:False)
如果为True,返回带有边键的多图。如果为False(默认), 当图中有多重边时返回多图。
- Returns:
- graph: NetworkX图
如果没有找到平行边,则返回Graph或DiGraph。 否则返回MultiGraph或MultiDiGraph。
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多图边键。
Examples
>>> G = nx.path_graph(4) >>> linefeed = chr(10) # linefeed =
>>> s = linefeed.join(nx.generate_graphml(G)) >>> H = nx.parse_graphml(s)