我有一个包含两种不同类型节点的XML文件(我们称之为节点'a'和节点'b')。他们是连接的。我想将节点'a'表示为 - 比如说一个正方形,节点'b'作为一个圆。这在networkx和Python中是否可行?
我最初的计划是宣布两张图:
AG=nx.DiGraph()
BG=nx.DiGraph()
然后根据它的节点类型为每个节点添加节点 - 所以我将遍历XML,如果节点是'type a',则将其添加到 AG 并且如果是B型,请将其添加到 BG
现在我可以显示每个图形并定义它的形状 - 通常:
nx.draw_networkx(EG, font_family="Arial", font_size=10,
node_size=2000, node_shape="s", node_color='r', labels=node_labels, with_labels=True)
它崩溃的部分是当我尝试在'a'节点和'b'节点之间添加边时。
关于如何运作的任何想法?
答案 0 :(得分:0)
将整个数据集保存在一个图表中:
G = nx.DiGraph()
还保留A_nodes和B_nodes的列表。然后你可以使用
选择G的子图AG = G.subgraph(A_nodes)
BG = G.subgraph(B_nodes)
由于所有节点都在G中,您现在可以在A节点和B节点之间添加边缘:
G.add_edge(a_node, b_node)