Changeset 8519:db1a1fdf41c7 in orange


Ignore:
Timestamp:
07/28/11 19:44:52 (3 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
7cc149bc9ae8f3be4ab8a7f0e85b50f87526f7af
Message:
 
Location:
orange/OrangeWidgets/Prototypes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Prototypes/OWNxCanvasQt.py

    r8515 r8519  
    667667            return 
    668668         
    669     def change_graph(self, newgraph, inter_nodes, add_nodes, remove_nodes): 
     669    def change_graph(self, newgraph): 
     670        old_nodes = set(self.graph.nodes_iter()) 
     671        new_nodes = set(newgraph.nodes_iter()) 
     672        inter_nodes = old_nodes.intersection(new_nodes) 
     673        remove_nodes = old_nodes.difference(inter_nodes) 
     674        add_nodes = new_nodes.difference(inter_nodes) 
     675         
    670676        self.graph = newgraph 
    671          
    672         [self.networkCurve.vertices.pop(key) for key in remove_nodes] 
    673         self.networkCurve.vertices.update(dict((v, NodeItem(v)) for v in add_nodes)) 
    674         vertices = self.networkCurve.vertices 
    675          
    676         #build edge index 
    677         row_ind = {} 
    678         if self.links is not None and len(self.links) > 0: 
    679           for i, r in enumerate(self.links): 
    680               u = int(r['u'].value) 
    681               v = int(r['v'].value) 
    682               if u in self.graph and v in self.graph: 
    683                   u_dict = row_ind.get(u, {}) 
    684                   v_dict = row_ind.get(v, {}) 
    685                   u_dict[v] = i 
    686                   v_dict[u] = i 
    687                   row_ind[u] = u_dict 
    688                   row_ind[v] = v_dict 
    689                    
    690         #add edges 
    691         if self.links is not None and len(self.links) > 0: 
    692             links = self.links 
    693             links_indices = (row_ind[i + 1][j + 1] for (i, j) in self.graph.edges()) 
    694             labels = ([str(row[r].value) for r in range(2, len(row))] for row in (links[links_index] for links_index in links_indices)) 
    695              
    696             if self.graph.is_directed(): 
    697                 edges = [EdgeItem(vertices[i], vertices[j], 
    698                     self.graph[i][j].get('weight', 1), 0, 1, links_index, label) for \ 
    699                     ((i, j), links_index, label) in zip(self.graph.edges(), \ 
    700                                                         links_indices, labels)] 
    701             else: 
    702                 edges = [EdgeItem(vertices[i], vertices[j], 
    703                     self.graph[i][j].get('weight', 1), links_index, label) for \ 
    704                     ((i, j), links_index, label) in zip(self.graph.edges(), \ 
    705                                                         links_indices, labels)] 
    706         elif self.graph.is_directed(): 
    707             edges = [EdgeItem(vertices[i], vertices[j], 
    708                                       self.graph[i][j].get('weight', 1), 0, 1) for (i, j) in self.graph.edges()] 
    709         else: 
    710             edges = [EdgeItem(vertices[i], vertices[j], 
    711                                       self.graph[i][j].get('weight', 1)) for (i, j) in self.graph.edges()] 
     677        self.networkCurve.remove_nodes(remove_nodes) 
     678         
    712679                   
    713680        #self.minEdgeWeight = min(edge.weight for edge in edges) if len(edges) > 0 else 0 
     
    725692        #self.setVerticesSize() 
    726693         
    727         self.networkCurve.coors = self.layout.map_to_graph(self.graph) 
    728         self.networkCurve.edges = edges 
    729         self.networkCurve.changed() 
     694        self.replot() 
    730695         
    731696    def set_graph(self, graph, curve=None, items=None, links=None): 
  • orange/OrangeWidgets/Prototypes/OWNxExplorerQt.py

    r8515 r8519  
    12021202       
    12031203    def change_graph(self, newgraph): 
    1204         old_nodes = set(self.graph.nodes_iter()) 
    1205         new_nodes = set(newgraph.nodes_iter()) 
    1206         inter_nodes = old_nodes.intersection(new_nodes) 
    1207         remove_nodes = old_nodes.difference(inter_nodes) 
    1208         add_nodes = new_nodes.difference(inter_nodes) 
    1209          
    1210         [self.networkCanvas.networkCurve.coors.pop(c) for c in remove_nodes] 
    1211         self.networkCanvas.networkCurve.coors.update((node, (0,0)) for node in add_nodes) 
    1212         positions = [self.networkCanvas.networkCurve.coors[key] for key in sorted(self.networkCanvas.networkCurve.coors.iterkeys())] 
    1213 #        self.layout.set_graph(newgraph, positions) 
    1214          
    12151204        self.graph = newgraph 
    12161205        self.number_of_nodes_label = self.graph.number_of_nodes() 
    12171206        self.number_of_edges_label = self.graph.number_of_edges() 
    12181207         
    1219         self.networkCanvas.change_graph(self.graph, inter_nodes, add_nodes, remove_nodes) 
     1208        self.networkCanvas.change_graph(self.graph) 
    12201209         
    12211210#        self.nShown = self.graph.number_of_nodes() 
     
    12391228#        self.clustering_coefficient = Orange.network.nx.algorithms.cluster.average_clustering(undirected_graph) * 100 
    12401229         
    1241         k = 1.13850193174e-008 
    1242         nodes = self.graph.number_of_nodes() 
    1243         nedges = selg.graph.number_of_edges() 
    1244         t = k * (nodes**2 + nedges)  
     1230        t = 1.13850193174e-008 * (self.graph.number_of_nodes()**2 + self.graph.number_of_edges()) 
    12451231        self.frSteps = int(2.0 / t) 
    12461232        if self.frSteps <   1: self.frSteps = 1; 
     
    12651251        #self.clickedEdgeLabelListBox() 
    12661252         
    1267         self.optButton.setChecked(1) 
    1268         self.graph_layout()         
     1253        #self.optButton.setChecked(1) 
     1254        #self.graph_layout()         
    12691255        self.information(0) 
    12701256         
     
    13471333        self.showComponentAttribute = None 
    13481334 
    1349         k = 1.13850193174e-008 
    1350         nodes = self.graph.number_of_nodes() 
    1351         t = k * (nodes**2 + self.graph.number_of_edges()) 
     1335        t = 1.13850193174e-008 * (self.graph.number_of_nodes()**2 + self.graph.number_of_edges()) 
    13521336        self.frSteps = int(2.0 / t) 
    13531337        if self.frSteps <   1: self.frSteps = 1; 
    13541338        if self.frSteps > 100: self.frSteps = 100; 
    13551339         
    1356         self.networkCanvas.labelsOnMarkedOnly = self.labelsOnMarkedOnly 
    1357         self.networkCanvas.showWeights = self.showWeights 
    1358         self.networkCanvas.showIndexes = self.showIndexes 
    13591340        # if graph is large, set random layout, min vertex size, min edge size 
    13601341        if self.frSteps < 10: 
     
    13661347            self.optMethod = 0 
    13671348            self.graph_layout_method()             
     1349         
     1350        self.networkCanvas.labelsOnMarkedOnly = self.labelsOnMarkedOnly 
     1351        self.networkCanvas.showWeights = self.showWeights 
     1352        self.networkCanvas.showIndexes = self.showIndexes 
    13681353             
    13691354        self.set_vertex_size() 
Note: See TracChangeset for help on using the changeset viewer.