Python 在NetworkX中,是否可以将节点定义为子图?

Python 在NetworkX中,是否可以将节点定义为子图?,python,nodes,networkx,subgraph,Python,Nodes,Networkx,Subgraph,我在网上查,但没有找到答案 你们知道在NetworkX中是否可以将节点定义为子图吗 让我更好地提出这个问题:我有一个由一些形状节点(正方形、圆形、三角形等)组成的图。现在我想将每个节点定义为一个子图。子图的节点应该是形状的角点(对于三角形:子图有3个节点,因为有3个角点)。当然,这个子图的创建不应该影响起始图 例如: 有向图由两个节点组成:“正方形”和“三角形” “正方形”和“三角形”之间的边 节点“square”是包含4个节点(每个角点1个)的子图 连接这些节点的边 节点“三角形”是包含3个

我在网上查,但没有找到答案

你们知道在NetworkX中是否可以将节点定义为子图吗

让我更好地提出这个问题:我有一个由一些形状节点(正方形、圆形、三角形等)组成的图。现在我想将每个节点定义为一个子图。子图的节点应该是形状的角点(对于三角形:子图有3个节点,因为有3个角点)。当然,这个子图的创建不应该影响起始图

例如:

  • 有向图由两个节点组成:“正方形”和“三角形”
  • “正方形”和“三角形”之间的边
  • 节点“square”是包含4个节点(每个角点1个)的子图
  • 连接这些节点的边
  • 节点“三角形”是包含3个节点(每个角点1个)的子图
  • 连接这些节点的边

是否可以在NetworkX中执行此操作?非常感谢您的帮助或建议。

是的,您可以这样做,例如

In [1]: import networkx as nx

In [2]: square = nx.Graph()

In [3]: square.add_cycle([1,2,3,4])

In [4]: triangle = nx.Graph()

In [5]: triangle.add_cycle([10,20,30])

In [6]: shapes = nx.Graph()

In [7]: shapes.add_edge(triangle,square)

In [8]: shapes.edges()
Out[8]: 
[(<networkx.classes.graph.Graph at 0x962040c>,
  <networkx.classes.graph.Graph at 0x962042c>)]

In [9]: shapes.nodes()[0].edges()
Out[9]: [(1, 2), (1, 4), (2, 3), (3, 4)]

In [10]: shapes.nodes()[1].edges()
Out[10]: [(10, 20), (10, 30), (20, 30)]
[1]中的
:将networkx导入为nx
[2]中:square=nx.Graph()
[3]中:平方。加法循环([1,2,3,4])
[4]中:三角形=nx.Graph()
[5]中:三角形。加上_循环([10,20,30])
[6]中:shapes=nx.Graph()
在[7]中:形状。添加_边(三角形、正方形)
在[8]:shapes.edges()中
出[8]:
[(,
)]
[9]中:shapes.nodes()[0]。edges()
出[9]:[(1,2)、(1,4)、(2,3)、(3,4)]
[10]中:shapes.nodes()[1].edges()
Out[10]:[(10,20)、(10,30)、(20,30)]

谢谢!这真的很有帮助!