Fom*_*ite 2 python directed-graph networkx
我正在为NetworkX中的有向图制作一些代码,并且遇到了一个块,这可能是我可疑的编程经验的结果.我想要做的是以下内容:
我有一个有向图G,顶部有两个"父节点",所有其他节点都从这些节点流出.在绘制这个网络的图形时,我想将每个节点作为"父1"的后代绘制一种颜色,而所有其他节点绘制另一种颜色.这意味着我需要一个名单Parent 1的继承者.
现在,我可以轻松地使用它们获得第一层:
descend= G.successors(parent1)
Run Code Online (Sandbox Code Playgroud)
问题是这只给了我第一代接班人.最好是,我想要继承者的继承者,继承者的继承者的继承者等等.任意地,因为能够运行分析并制作图表而不必确切知道其中有多少代是非常有用的.
知道如何处理这个问题吗?
您不需要后代列表,只需要为它们着色.为此,您只需选择一个遍历图形并使用它为边缘着色的算法.
例如,你可以做到
from networkx.algorithms.traversal.depth_first_search import dfs_edges
G = DiGraph( ... )
for edge in dfs_edges(G, parent1):
color(edge)
Run Code Online (Sandbox Code Playgroud)
请参见http://networkx.lanl.gov/reference/algorithms.traversal.html