我有一個使用wxpython的python界面,它允許用戶填充矩陣(0/1),然後爲它們繪製圖形。該程序創建一個numpy矩陣,然後從該矩陣中創建一個networkx圖形,然後使用matplotlib.pylab來顯示該圖形。在Python中繪製關係矩陣
numpy是必須的,因爲程序還做其他事情,比如獲得傳遞性,自反性和對稱性閉包......至於networkx,我可以使用別的東西,如果你推薦其他更好的用於繪製矩陣的東西, matplotlib,我討厭它,請如果你知道任何其他方式來顯示圖請諮詢。
matplotlib是我的問題的來源,當用戶單擊圖形按鈕時,我的程序讀取矩陣,生成圖形,matplotlib將其顯示在新窗口中(默認情況下)。現在,如果用戶返回到原始窗口並在沒有首先關閉matplotlib窗口的情況下繪製不同的矩陣,程序就會崩潰。
在我看來,繪製「箭頭」關係的方式並不吸引人。
我需要一個更好的方式來繪製我的矩陣,或者至少作爲一種強制關閉myplotlib窗口的方式,我嘗試過plt.close()但沒有起作用,窗口將保持打開狀態,並且兩個窗口會說(不迴應),我必須結束程序。
這是代碼的有問題的部分:
import numpy as np
import networkx as nx
import matplotlib.pylab as plt
... ... ...
def graph(values)
plt.close() #with or without this it does not work
matrix = np.matrix(values)
graph = nx.DiGraph(matrix)
nx.draw(graph)
plt.show()
return