從以下顛簸矩陣開始,我想使用 python 庫 Networkx 創建一個圖形
matrix([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[2, 0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 2, 1],
[0, 0, 0, 1, 0, 0, 2, 0],
[2, 2, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 0, 0]])
在哪里:
- 0 表示該節點未連接到另一個節點
- 1 表示該節點連接到另一個節點
- 2 表示該節點有一個指向另一個節點的傳出箭頭(例如,1 --> 6)
問題是我能夠繪制有向圖或無向圖,但不能同時繪制兩者。
謝謝你的幫助
uj5u.com熱心網友回復:
#libraries
import networkx as nx
import numpy as np
#input
X = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[2, 0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 2, 1],
[0, 0, 0, 1, 0, 0, 2, 0],
[2, 2, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 0, 0]])
G = nx.DiGraph(X>0)
nx.draw_kamada_kawai(G, with_labels=True)

這樣你就有了無向邊是雙向連接的。我認為沒有其他方法可以實作您的圖表,networkx因為不允許使用混合圖表,如此處所述:
-是否可以將無向和有向邊添加到 networkx 中的圖形物件
- MixedGraph 和 MixedMultiGraph
我能想象的唯一其他解決方案是構建有向圖和單獨的無向圖,但這完全取決于您的目標是什么以及該圖的用途。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488960.html
