使用带有 graphml 格式的 load_graph 时防止图形工具重新映射节点
Prevent graph-tool to remap nodes when using load_graph with graphml format
我正在处理一些以前从 networkx 库以 graphml 格式导出的图表。
当我将这些文件导入图形工具时,以下将节点重新映射到 0 基索引。我怎样才能防止这种情况发生?因为我真的需要保留顺序。
示例:
# Create a graph using networkx with only one edge (10 <-> 20)
import networkx as nx
g = nx.Graph()
g.add_edge(10, 20)
nx.write_graphml(g, 'teste.graphml')
# load the previous graph using graph-tool
import graph_tool.all as gt
g = gt.load_graph('teste.graphml')
print(list(g.edges()) # output is an edge from 0 to 1
在图形工具中,顶点总是从零开始索引,但如果 graphml 文件使用非规范索引,这可以通过 "_graphml_vertex_id"
属性 映射获得:
g = gt.load_graph('teste.graphml')
v = g.vertex(0)
print(g.vp._graphml_vertex_id[v])
我正在处理一些以前从 networkx 库以 graphml 格式导出的图表。
当我将这些文件导入图形工具时,以下将节点重新映射到 0 基索引。我怎样才能防止这种情况发生?因为我真的需要保留顺序。
示例:
# Create a graph using networkx with only one edge (10 <-> 20)
import networkx as nx
g = nx.Graph()
g.add_edge(10, 20)
nx.write_graphml(g, 'teste.graphml')
# load the previous graph using graph-tool
import graph_tool.all as gt
g = gt.load_graph('teste.graphml')
print(list(g.edges()) # output is an edge from 0 to 1
在图形工具中,顶点总是从零开始索引,但如果 graphml 文件使用非规范索引,这可以通过 "_graphml_vertex_id"
属性 映射获得:
g = gt.load_graph('teste.graphml')
v = g.vertex(0)
print(g.vp._graphml_vertex_id[v])