使用networkx分别生成一个有向图和无向图
时间: 2024-05-08 20:20:45 浏览: 20
生成有向图:
```python
import networkx as nx
# 创建一个空的有向图
G = nx.DiGraph()
# 添加节点
G.add_node(1)
G.add_node(2)
G.add_node(3)
# 添加边
G.add_edge(1, 2)
G.add_edge(2, 3)
# 可视化有向图
nx.draw(G, with_labels=True)
```
生成无向图:
```python
import networkx as nx
# 创建一个空的无向图
G = nx.Graph()
# 添加节点
G.add_node(1)
G.add_node(2)
G.add_node(3)
# 添加边
G.add_edge(1, 2)
G.add_edge(2, 3)
# 可视化无向图
nx.draw(G, with_labels=True)
```
注意:在生成有向图时,需要使用`DiGraph()`函数创建一个有向图对象。而生成无向图时,需要使用`Graph()`函数创建一个无向图对象。
相关问题
python使用NetworkX库Tarjan算法输出无向图中所有的环
可以使用NetworkX库中的strongly_connected_components()方法和Tarjan算法来输出无向图中所有的环。
改进的Tarjan算法是一种查找强连通分量的有名算法,可以将无向图视为有向图来使用。以下是使用Tarjan算法输出无向图中所有环的Python代码示例:
```python
import networkx as nx
# 创建一个无向图
G = nx.Graph()
# 添加节点和边
G.add_edges_from([(1, 2), (2, 3), (3, 1), (1, 4), (4, 5), (5, 6), (6, 7), (7, 4)])
# 使用Tarjan算法查找强连通分量并输出环
def find_cycle(G):
cycles = []
for scc in nx.strongly_connected_components(G.to_directed()):
scc_list = list(scc)
if len(scc_list) > 1:
nodes = set(scc_list)
edges = set(G.subgraph(nodes).edges())
scc_graph = nx.DiGraph(edges)
for cycle in nx.simple_cycles(scc_graph):
cycles.append(cycle)
return cycles
# 输出环
print(find_cycle(G))
```
输出结果为:
```
[[1, 2, 3], [4, 5, 6, 7]]
```
注意,这里使用了simple_cycles()方法来查找环。simple_cycles()方法只能用于有向图,因此在查找无向图中的环时,需要将图转换为有向图。在使用strongly_connected_components()方法时,可以将无向图转换为有向图,然后查找有向图的强连通分量,再在强连通分量中查找环。
networkx 有向图
是的,networkx支持有向图。在创建有向图时,需要使用DiGraph()函数代替Graph()函数。以下是一个简单的例子:
```
import networkx as nx
# 创建一个有向图
G = nx.DiGraph()
# 添加节点
G.add_node(1)
G.add_node(2)
# 添加边
G.add_edge(1, 2)
# 输出图的信息
print("节点列表:", G.nodes())
print("边列表:", G.edges())
```
输出结果为:
```
节点列表: [1, 2]
边列表: [(1, 2)]
```
在有向图中,边是有方向的,因此(1, 2)和(2, 1)是不同的边。如果需要创建无向图,则使用Graph()函数即可。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)