我有一个使用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
2011-03-24
Alex