在我的论文中,我需要画一些概率控制流图。i、 e.控制流图,其边缘描绘了概率。
我发现图形工具似乎非常有用,因为它可以使用现有图形的深层副本,而我的图形非常相似。
所以我的问题是,是否有可能在边上/边上绘制边属性(或一些字符串)?如果不可能或非常复杂,在这种情况下是否有更好的工具?
编辑: 我需要定向边,它甚至可以在两个节点之间创建循环,并且具有不同的值。这也有可能吗?所以我能看到两种价值观?到现在为止,我可以看到有向图有一个双向边,但只有一个值。
例如,在networkx中(指Hooked),它看起来像:
G = nx.MultiDiGraph()
G.add_edge(0,1)
G.add_edge(1,0)
labels = {(0,1):'foo', (1,0):'bar'}
这样“foo”和“bar”都是可见的,并且可以看到它们连接到哪个方向。
但当networkx渲染它时,我得到一个带有一个标签的双向边。
编辑:如果您需要带边缘标签的多向图,我认为您不能在
networkx
内完全完成此操作。但是,您可以在python中完成大部分工作,并使用另一个程序进行渲染和布局:我用graphviz把它变成一个图像。在我的Unix机器上,我从命令行运行这个
它提供了你想要的输出。注意graphviz有many ways to customize the visual appearance。上面的例子只会产生:
使用graph-draw()函数的“edge-text”选项,可以使用graph-tool在边旁边绘制文本:
相关问题 更多 >
编程相关推荐