图形工具 GraphView 对象
Graph-Tool GraphView Object
我有一个使用图形工具 GraphView()
生成的过滤图形。
g = gt.GraphView(g, vfilt= label_largest_component(g, directed=False))
原始图 g
有 10,069 个顶点,而生成的图有 9,197 个。但是,使用新的(过滤后的)图,当我使用 indeg = g.degree_property_map("in")
列出入度时,list(indeg.a)
中的元素总数仍然是 10,069。这在绘制具有 9,197 个节点的新过滤图时会出现问题,其中顶点大小设置为 indeg
的函数,主要是因为元素数量不匹配。
代码片段如下所示
g = load_graph("ppnet.xml")
g = GraphView(g, vfilt=label_largest_component(g, directed=False))
indeg = g.degree_property_map("in")
indeg.a = np.sqrt(indeg.a) + 2
graph_draw(g, vertex_size = indeg, vertex_fill_color=indeg, pos = sfdp_layout(g),
vcmap=plt.cm.gist_heat, output_size=(400, 400), output="gc.png")
当 运行 时,给出以下 ValueError
ValueError: operands could not be broadcast together with shapes (10069,) (9197,)
为 GraphView
对象添加预期样式的正确方法是什么?
找到解决办法。我首先创建了 GraphView
对象的 copy,然后清除了这个 copy 的顶点。请注意,为了清楚起见,我没有保留变量名称 g
,而是引入了一个新变量 gc
。
g = load_graph("ppnet.xml")
gc = GraphView(g, vfilt=label_largest_component(g, directed=False)).copy()
gc.purge_vertices()
indeg = gc.degree_property_map("in")
indeg.a = np.sqrt(indeg.a)+2
graph_draw(gc, vertex_size = indeg, vertex_fill_color=indeg, pos = sfdp_layout(gc),
vcmap=plt.cm.gist_heat, output_size=(400, 400), output="gc.png")
我有一个使用图形工具 GraphView()
生成的过滤图形。
g = gt.GraphView(g, vfilt= label_largest_component(g, directed=False))
原始图 g
有 10,069 个顶点,而生成的图有 9,197 个。但是,使用新的(过滤后的)图,当我使用 indeg = g.degree_property_map("in")
列出入度时,list(indeg.a)
中的元素总数仍然是 10,069。这在绘制具有 9,197 个节点的新过滤图时会出现问题,其中顶点大小设置为 indeg
的函数,主要是因为元素数量不匹配。
代码片段如下所示
g = load_graph("ppnet.xml")
g = GraphView(g, vfilt=label_largest_component(g, directed=False))
indeg = g.degree_property_map("in")
indeg.a = np.sqrt(indeg.a) + 2
graph_draw(g, vertex_size = indeg, vertex_fill_color=indeg, pos = sfdp_layout(g),
vcmap=plt.cm.gist_heat, output_size=(400, 400), output="gc.png")
当 运行 时,给出以下 ValueError
ValueError: operands could not be broadcast together with shapes (10069,) (9197,)
为 GraphView
对象添加预期样式的正确方法是什么?
找到解决办法。我首先创建了 GraphView
对象的 copy,然后清除了这个 copy 的顶点。请注意,为了清楚起见,我没有保留变量名称 g
,而是引入了一个新变量 gc
。
g = load_graph("ppnet.xml")
gc = GraphView(g, vfilt=label_largest_component(g, directed=False)).copy()
gc.purge_vertices()
indeg = gc.degree_property_map("in")
indeg.a = np.sqrt(indeg.a)+2
graph_draw(gc, vertex_size = indeg, vertex_fill_color=indeg, pos = sfdp_layout(gc),
vcmap=plt.cm.gist_heat, output_size=(400, 400), output="gc.png")