Programme pour dessiner des poids dans les bords ne fonctionnent pas correctement + NetworkX
Question
I ai ce programme pour tracer un bord marqué avec les noeuds en utilisant matplotlib intérieur d'un cadre wx.
J'ai combiné à l'aide d'exemples sur le site et les requêtes posées par d'autres personnes.
Mais il ne fonctionne pas correctement comme les nœuds et les bords ne soient dessinés mais les poids ne sont pas.
aide quelqu'un peut me trouver la raison pour elle ...
import wxversion
wxversion.ensureMinimal('2.8')
import matplotlib
matplotlib.use('WXAgg')
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wx import NavigationToolbar2Wx
from matplotlib.figure import Figure
import wx
import networkx as nx
class CanvasFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,
'CanvasFrame',size=(550,350))
self.SetBackgroundColour(wx.NamedColor("WHITE"))
self.figure = Figure()
self.axes = self.figure.add_subplot(111)
self.canvas = FigureCanvas(self, -1, self.figure)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.SetSizer(self.sizer)
self.Fit()
G = nx.Graph()
G.add_edge(1,3,weight = 5)
G.add_edge(1,2,weight = 4)
pos = nx.spring_layout(G)
nx.draw_networkx(G, pos, ax=self.axes)
edge_labels=dict([((u,v,),d['weight'])
for u,v,d in G.edges(data=True)])
nx.draw_networkx_edge_labels(G,pos,edge_labels=edge_labels)
class App(wx.App):
def OnInit(self):
'Create the main window and insert the custom frame'
frame = CanvasFrame()
frame.Show(True)
return True
app = App(0)
app.MainLoop()
La solution
Crédits à Mr Aric Hagberg
de la communauté NetworkX pour cette réponse.
Mais depuis que je suis venu à connaître ce que je pensais que je devrais répondre à d'autres utilisateurs ici pour.
Le seul problème dans le code ci-dessus est
nx.draw_networkx_edge_labels(G,pos,edge_labels=edge_labels,ax= self.axes)
Maintenant, il donne des bords pondérés à l'intérieur WX utilisant NetworkX.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow