Changeset 9511:fce10e31bc78 in orange


Ignore:
Timestamp:
01/05/12 14:36:38 (2 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
3f2ab6b7f8c5b16272d082b94b12420e53e2b27d
Message:

Added network analysis widget.

Location:
orange/OrangeWidgets/Unsupervised
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Unsupervised/OWNxExplorer.py

    r9505 r9511  
    7979            self.edgeColor = 0 
    8080            self.vertexSize = 0 
    81             self.nShown = self.nHidden = self.nMarked = self.nSelected = self.verticesPerEdge = self.edgesPerVertex = self.diameter = self.clustering_coefficient = 0 
     81            self.nShown = self.nHidden = self.nMarked = self.nSelected = self.verticesPerEdge = self.edgesPerVertex = 0 
    8282            self.optimizeWhat = 1 
    8383            self.maxLinkSize = 3 
     
    279279            OWGUI.label(ib, self, "Nodes per edge: %(verticesPerEdge).2f") 
    280280            OWGUI.label(ib, self, "Edges per node: %(edgesPerVertex).2f") 
    281             OWGUI.label(ib, self, "Diameter: %(diameter).0f") 
    282             OWGUI.label(ib, self, "Clustering Coefficient: %(clustering_coefficient).1f%%") 
    283281             
    284282            ib = OWGUI.widgetBox(self.infoTab, orientation="horizontal") 
    285283             
    286             OWGUI.button(ib, self, "Degree dist", callback=self.show_degree_dist, width=84, debuggingEnabled=False) 
    287             OWGUI.button(ib, self, "Save net", callback=self.save_network, width=84, debuggingEnabled=False) 
    288             OWGUI.button(ib, self, "Save img", callback=self.networkCanvas.saveToFile, width=84, debuggingEnabled=False) 
    289             self.reportButton = OWGUI.button(ib, self, "&Report", self.reportAndFinish, width=84, debuggingEnabled=0) 
     284            OWGUI.button(ib, self, "Save net", callback=self.save_network, debuggingEnabled=False) 
     285            OWGUI.button(ib, self, "Save img", callback=self.networkCanvas.saveToFile, debuggingEnabled=False) 
     286            self.reportButton = OWGUI.button(ib, self, "&Report", self.reportAndFinish, debuggingEnabled=0) 
    290287            self.reportButton.setAutoDefault(0) 
    291288             
     
    679676            else: 
    680677                self.edgesPerVertex = 0 
    681              
    682             undirected_graph = self.graph.to_undirected() if self.graph.is_directed() else self.graph 
    683             components = Orange.network.nx.algorithms.components.connected_components(undirected_graph) 
    684             if len(components) > 1: 
    685                 self.diameter = float('nan') 
    686             else: 
    687                 try: 
    688                     if self.graph.number_of_nodes() > 1: 
    689                         self.diameter = Orange.network.nx.algorithms.distance_measures.diameter(self.graph) 
    690                     else: 
    691                         self.diameter = -1 
    692                 except Orange.network.nx.NetworkXError as err: 
    693                     if 'infinite path length' in err.message: 
    694                         self.diameter = float('inf') 
    695                     else: 
    696                         raise err  
    697             if self.graph.is_multigraph() or self.graph.number_of_nodes() <= 0: 
    698                 self.clustering_coefficient = -1 
    699             else: 
    700                 self.clustering_coefficient = Orange.network.nx.algorithms.cluster.average_clustering(undirected_graph) * 100 
    701678           
    702679        def change_graph(self, newgraph): 
     
    778755                return 
    779756             
     757            if graph == self.graph_base: 
     758                self.set_items(graph.items()) 
     759                return 
     760             
    780761            self.graph_base = graph 
    781762             
     
    958939                except: 
    959940                    self.warning('"index" attribute does not exist in "items" table.') 
    960                          
    961         def show_degree_dist(self): 
    962             if self.graph is None: 
    963                 return 
    964              
    965             from matplotlib import rcParams 
    966             import pylab as p 
    967              
    968             x = self.graph.degree().values() 
    969             nbins = len(set(x)) 
    970             if nbins > 500: 
    971               bbins = 500 
    972              
    973             # the histogram of the data 
    974             n, bins, patches = p.hist(x, nbins) 
    975              
    976             p.xlabel('Degree') 
    977             p.ylabel('No. of nodes') 
    978             p.title(r'Degree distribution') 
    979              
    980             p.show() 
    981          
     941                        
    982942        ####################################################################### 
    983943        ### Layout Optimization                                             ### 
     
    13511311                                 ("Vertices per edge", "%.3f" % self.verticesPerEdge), 
    13521312                                 ("Edges per vertex", "%.3f" % self.edgesPerVertex), 
    1353                                  ("Diameter", self.diameter), 
    1354                                  ("Clustering Coefficient", "%.1f%%" % self.clustering_coefficient) 
    13551313                                 ]) 
    13561314            if self.color or self.vertexSize or self.markerAttributes or self.edgeColor: 
Note: See TracChangeset for help on using the changeset viewer.