我可以使用kk
布局成功绘制一个漂亮的网络。不幸的是,由于kk
是随机布局,每次绘制它时它看起来都不同。
有没有办法用相同的顶点和节点排列绘制两次但是改变视觉风格?我想通过更改顶点颜色并并排显示两个图来可视化更改。当然,将来我可能也有兴趣修改边缘,但现在这不是问题。
对于我的程序的每次运行布局都会发生变化这一事实我完全没问题,它应该在一次运行中一致地绘制它。
如果保存生成的SVG,我可以将其绘制两次,但当然对底层图形进行修改会比调整原始SVG更优雅。
这绘制了两次相同的布局,但仅作为SVG:
s = cairo.SVGSurface(None, 800, 800)
model = ig.plot(g, **visual_style,
vertex_label=[label_for_title(vertex[1]['title']) for vertex in enumerate(g.vs)],
edge_color=[color_for_rating(edge[1]['rating']) for edge in enumerate(g.es)],
target=s,
mark_groups=action_systems)._repr_svg_()
display(SVG(model))
display(SVG(model))
答案 0 :(得分:0)
是的,有,因为igraph允许您将顶点的布局存储为对象:my_layout = g.layout('kk')
。
因此,您可以使用相同的布局多次绘制图形g:
my_layout = g.layout('kk')
igraph.plot(g,layout=my_layout)
#now change g and/or the visual style
g.delete_edges([0,3,4])
igraph.plot(g,layout=my_layout,vertex_color=['blue' for _ in g.vs])
新绘制的图形将具有相同的顶点位置,但现在一些边缘将消失,所有顶点将自然为蓝色。