У меня есть интерфейс Python, использующий wxpython, который позволяет пользователю заполнить матрицу (0/1) и затем отобразить ее для них. Программа создает пустую матрицу, затем создает график 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