【发布时间】:2011-03-24 16:01:08
【问题描述】:
我有一个使用 wxpython 的 python 接口,它允许用户填写一个矩阵 (0/1),然后为他们绘制图表。该程序创建一个 numpy 矩阵,然后从该矩阵中制作一个 networkx 图,然后使用 matplotlib.pylab 来显示该图。
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
【问题讨论】:
标签: python wxpython numpy matplotlib networkx