我有一个(有向无环)图,这样每个节点都有一个离散的时间戳,即每个节点都标有一个数字:1,2,3,4 ...在节点上绘制带有时间标签的图形
该图可能具有多个组件,并且时间戳随着图的方向而增加。
我有图netowrkx对象,现在我想用图s.t创建一个python图。一个节点的高度由它的时间标记决定(底部较高的时间戳和较低的时间标记以及具有相同时间标记的节点处于相同高度)。这意味着,例如,如果它们的时间戳不同,则2个分量可以在不同的初始高度处“开始”(它们的根高度)。另一方面,给定用时间= 4标记的节点A和标记为5的节点B,我希望B在图中较低。
第三个例子:如果2个节点是第三个节点的子节点,但是它们是在不同的时间创建的 - 最后一个节点的边将会更长,s.t.每个孩子都将处于自己的时间级别。
写现在,我的代码是非常简单的:
import networkx as nt
import matplotlib.pyplot as plt
graph = networkx.DiGraph()
self.graph.add_node("A", time = 1)
...# Add more nodes
graph.add_edge("A","B")
...# Add more edges
plt.figure(1,figsize=(30,10))
pos=nt.graphviz_layout(graph,prog='dot')
networkx.draw(graph,pos,with_labels=False,arrows=True, node_size = 80)
(我没有足够的声誉将结果上传的图片... :-))
我怎么能在Python中绘制这个?哪个软件包可以帮助我?
这是有点不清楚,但如果我正确理解这一点,你想要指定每个节点的高度基于它的时间戳。你不能设置每个节点的几何位置吗?向我们展示迄今为止所做的工作(代码)可以帮助我们了解应该改变或完成不同的工作。 – Reti43
谢谢你Reti。 如何指定networkx中节点的几何位置? 该图可能很大,所以我确实需要它是自动的。 – slouis