繁体   English   中英

是否可以在networkx图中混合不同形状的节点?

[英]Is it possible to mix different shaped nodes in a networkx graph?

我有一个XML文件,其中包含两种不同类型的节点(我们称其为节点“ a”和节点“ b”)。 它们已连接。 我想将节点“ a”表示为-假设一个正方形,而将节点“ b”表示为一个圆。 在networkx和Python中这可能吗?

我最初的计划是声明两个图:

AG=nx.DiGraph()
BG=nx.DiGraph()

然后根据节点的类型将节点添加到每个节点中-因此,我将遍历XML,如果该节点是“ 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'节点之间添加边线时,它会掉落。

关于如何运作的任何想法?

将整个数据集保存在一张图中:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM