我有一个(有向无环)图,这样每个节点都有一个离散的时间戳,也就是说,每个节点都有一个数字:1,2,3,4。。。在
图形可能有多个组件,并且时间戳随着图形的方向而增加。在
我把图作为netowrkx对象,现在我想用python中的图形s.t创建一个图形。节点的高度由它的时间戳决定(顶部的时间戳较低,底部的时间戳较高,具有相同时间戳的节点处于同一高度)。这意味着,例如,如果时间戳不同,2个组件可能在不同的初始高度“开始”(它们的根高度)。在
另一方面,给定标记为time=4的节点A和标记为5的节点B,我希望B在图中更低。在
第三个例子:如果两个节点是第三个节点的子节点,但是它们是在不同的时间创建的-对于最新的一个节点,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绘制这个?哪个包裹可以帮我?在