[英]How to read a GML file on Spyder, Anaconda using networkX
[英]How do I view graphs created using NetworkX library without Anaconda/Spyder?
我正在學習離散數學課程。 學生應該使用NetworkX
庫來可視化圖形。 講師和助教正在使用 Spyder 和 Anaconda。 而且我沒有使用它們的計划。 我無法查看由 NetworkX 庫創建的圖形。 其余代碼完美運行。 這是一個示例:
import networkx as nx
G = nx.Graph()
for i in range(1, 6):
G.add_node(i)
G.add_edge(1, 2)
G.add_edge(2, 3)
G.add_edge(3, 4)
G.add_edge(4, 5)
G.add_edge(1, 6)
print(G.nodes())
print(G.edges())
nx.draw(G)
這是輸出:
[1, 2, 3, 4, 5, 6]
[(1, 2), (1, 6), (2, 3), (3, 4), (4, 5)]
------------------
(program exited with code: 0)
Press return to continue
所以最后一行沒有打印。 將其更改為print(nx.draw(G))
只會在輸出的末尾添加一個None
。 我曾嘗試使用 Geany、VS Code 和終端 (Bash),但看不到圖表。 我該怎么辦?
如何在不使用 Anaconda/Spyder 的情況下查看圖表?
您可以使用 matplotlib,您只需將 nx.draw 上的參數設置為 matplotlib 圖形的軸,例如:
import matplotlib.pyplot as plt
def draw_graph(nx_graph):
fig, axes = plt.subplots(1,1,dpi=72)
nx.draw(nx_graph, pos=nx.spring_layout(nx_graph), ax=axes, with_labels=True)
plt.show()
networkx 文檔建議使用更具體的專用工具進行圖形可視化,但這適用於基礎知識。 參見: https : //networkx.github.io/documentation/stable/reference/drawing.html
這可以通過將圖形視為外部圖像來解決。 生成圖形時,可以在不同的窗口中將其視為圖像,也可以將其保存到當前目錄。
需要從包matplotlib
中導入一個名為pyplot
的子模塊來執行此操作。
假設使用nx.draw(graph-name)
繪制nx.draw(graph-name)
。 在 Spyder 中,它會自動輸出圖形。 但這不會發生在終端。
我們可以使用命令plt.show()
查看生成的圖形。 我們將matplotlib.pyplot
作為plt
導入的地方。
plt.show()
將在不同的窗口中顯示圖形,但不會保存圖形的副本。
如果要在當前目錄中保存圖形的副本,請使用plt.savefig('file-with-extension')
。 它將保存圖形的副本。
下面是一個例子:
>>> import networkx as nx
>>> import matplotlib.pyplot as plt
>>> G = nx.graph()
>>> nx.add_path(G, [0, 1, 2, 3])
>>> nx.draw(G, with_labels=1)
>>> plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.