jsexauer / networkx_viewer

Interactive GUI for NetworkX graphs
GNU General Public License v3.0
137 stars 27 forks source link

Directed Graph Problem. #10

Open jvahue opened 9 years ago

jvahue commented 9 years ago

v1.10 Ok here is the problem. I have a DiGraph (see Suggestions Issue - oh that was another wish to get an arrow or whatever for Directional graphs) where two nodes point to each other.

nw = nx.DiGraph() nw.add_edges_from([(1,2), (2,3), (2,4), (1,4), (3,5), (3,2)]) app = Viewer(nw) app.mainloop()

In a DiGraph 2->3 and 3->2 so the first zoom cause the problem. Maybe both edges get drawn but only one is zoomed.

Here is a quick hack to fix this in GraphCanvas._plot_graph:

        # remove redundant edges
        e0 = graph.edges()
        e1 = []
        for f,t in e0:
            if (f,t) not in e1 and (t,f) not in e1:
                e1.append((f,t))

        # Create edges
        #for frm, to in set(graph.edges()):
        for frm, to in set(e1):
            self._draw_edge(frm, to)