Changeset 8853:7d92209761fe in orange


Ignore:
Timestamp:
08/30/11 18:26:42 (3 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
6e0e28b8b3b3a8fe811b4c58548027a6d04ae55e
Message:

Show component names sort of works.

Location:
orange/OrangeWidgets/Visualize Qt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Visualize Qt/OWNxCanvasQt.py

    r8841 r8853  
    1515from plot.owplot import * 
    1616from plot.owpoint import * 
     17from plot.owtools import *   
     18 
    1719from orngScaleScatterPlotData import * 
    1820import orangeqt 
     
    332334        self.show_weights = False 
    333335        self.trim_label_words = 0 
     336        self.explore_distances = False 
     337        self.show_component_distances = False 
    334338         
    335339        self.showComponentAttribute = None 
     
    361365    def update_canvas(self): 
    362366        self.networkCurve.update_properties() 
    363              
     367        self.drawComponentKeywords() 
     368        self.networkCanvas.replot() 
     369         
    364370    def set_hidden_nodes(self, nodes): 
    365371        self.networkCurve.set_hidden_nodes(nodes) 
     
    410416         
    411417    def drawComponentKeywords(self): 
    412         if self.showComponentAttribute == None: 
    413             return 
    414          
    415         if self.graph is None or self.items is None: 
     418        self.clear_markers() 
     419        if self.showComponentAttribute == None or self.graph is None or self.items is None: 
    416420            return 
    417421         
     
    421425         
    422426        components = Orange.network.nx.algorithms.components.connected_components(self.graph) 
    423          
    424         for component in components: 
    425             if len(component) == 0: 
     427        nodes = self.networkCurve.nodes() 
     428         
     429        for c in components: 
     430            if len(c) == 0: 
    426431                continue 
    427432             
    428             vertices = [vertex for vertex in component if self.networkCurve.vertices[vertex].show] 
    429      
    430             if len(vertices) == 0: 
    431                 continue 
    432              
    433             xes = [self.networkCurve.coors[vertex][0] for vertex in vertices]   
    434             yes = [self.networkCurve.coors[vertex][1] for vertex in vertices]   
    435                                    
    436             x1 = sum(xes) / len(xes) 
    437             y1 = sum(yes) / len(yes) 
    438              
    439             lbl = str(self.items[component[0]][str(self.showComponentAttribute)]) 
    440              
    441             mkey = self.addMarker(lbl, float(x1), float(y1), alignment=Qt.AlignCenter, size=self.fontSize) 
     433            x1 = sum(nodes[n].x() for n in c) / len(c) 
     434            y1 = sum(nodes[n].y() for n in c) / len(c) 
     435            lbl = str(self.items[c[0]][str(self.showComponentAttribute)]) 
     436             
     437            self.add_marker(lbl, x1, y1, alignment=Qt.AlignCenter, size=self.fontSize) 
     438             
     439            #mkey = self.addMarker(lbl, float(x1), float(y1), alignment=Qt.AlignCenter, size=self.fontSize) 
    442440                             
    443441    def getColorIndeces(self, table, attribute, palette): 
     
    734732        self.replot() 
    735733     
     734    def set_show_component_distances(self): 
     735        self.networkCurve.set_show_component_distances(self.show_component_distances) 
     736        self.replot() 
     737         
    736738    def replot(self): 
     739         
     740                #, alignment = -1, bold = 0, color = None, brushColor = None, size=None, antiAlias = None, x_axis_key = xBottom, y_axis_key = yLeft): 
    737741        self.set_dirty() 
    738742        OWPlot.replot(self) 
    739743        if hasattr(self, 'networkCurve') and self.networkCurve is not None: 
    740744            self.networkCurve.update() 
     745             
  • orange/OrangeWidgets/Visualize Qt/OWNxExplorerQt.py

    r8844 r8853  
    4343    "toolbarSelection", "minComponentEdgeWidth", "maxComponentEdgeWidth", 
    4444    "mdsFromCurrentPos", "labelsOnMarkedOnly", "tabIndex",  
    45     "networkCanvas.trim_label_words", "opt_from_curr"]  
     45    "networkCanvas.trim_label_words", "opt_from_curr", "networkCanvas.explore_distances", 
     46    "networkCanvas.show_component_distances"]  
    4647     
    4748    def __init__(self, parent=None, signalManager=None, name = 'Net Explorer (qt)',  
     
    200201        #OWGUI.checkBox(ib, self, 'showEdgeLabels', 'Show labels on edges', callback=(lambda: self._set_canvas_attr('showEdgeLabels', self.showEdgeLabels))) 
    201202        OWGUI.spin(ib, self, "maxLinkSize", 1, 50, 1, label="Max edge width:", callback = self.set_edge_sizes) 
    202         self.showDistancesCheckBox = OWGUI.checkBox(ib, self, 'showDistances', 'Explore node distances', callback=(lambda: self._set_canvas_attr('showDistances', self.showDistances)), disabled=1) 
     203        self.cb_show_distances = OWGUI.checkBox(ib, self, 'networkCanvas.explore_distances', 'Explore node distances', callback=None, disabled=1) 
     204        self.cb_show_component_distances = OWGUI.checkBox(ib, self, 'networkCanvas.show_component_distances', 'Show component distances', callback=self.networkCanvas.set_show_component_distances, disabled=1) 
    203205         
    204206        colorBox = OWGUI.widgetBox(self.edgesTab, "Edge color attribute", orientation="horizontal", addSpace = False) 
     
    295297        ib = OWGUI.widgetBox(self.infoTab, "Prototype") 
    296298        ib.setVisible(True) 
    297         #ib = OWGUI.widgetBox(ibProto, "Name components") 
     299         
    298300        OWGUI.lineEdit(ib, self, "organism", "Organism:", orientation='horizontal') 
    299301         
     
    306308        self.showComponentCombo.addItem("Select attribute") 
    307309        OWGUI.checkBox(ib, self, 'showTextMiningInfo', "Show text mining info") 
    308          
    309         #ib = OWGUI.widgetBox(ibProto, "Distance Matrix") 
    310         #ibs = OWGUI.widgetBox(ib, orientation="horizontal") 
    311         #self.btnMDS = OWGUI.button(ibs, self, "Fragviz", callback=self.mds_components, toggleButton=1) 
    312         #self.btnESIM = OWGUI.button(ibs, self, "eSim", callback=(lambda: self.mds_components(Orange.network.MdsType.exactSimulation)), toggleButton=1) 
    313         #self.btnMDSv = OWGUI.button(ibs, self, "MDS", callback=(lambda: self.mds_components(Orange.network.MdsType.MDS)), toggleButton=1) 
    314         #ibs = OWGUI.widgetBox(ib, orientation="horizontal") 
    315         #self.btnRotate = OWGUI.button(ibs, self, "Rotate", callback=self.rotateComponents, toggleButton=1) 
    316         #self.btnRotateMDS = OWGUI.button(ibs, self, "Rotate (MDS)", callback=self.rotateComponentsMDS, toggleButton=1) 
    317         #self.btnForce = OWGUI.button(ibs, self, "Draw Force", callback=self.drawForce, toggleButton=1) 
    318         #self.scalingRatio = 0 
    319         #OWGUI.spin(ib, self, "scalingRatio", 0, 9, 1, label="Set scalingRatio: ") 
    320         #OWGUI.doubleSpin(ib, self, "mdsStressDelta", 0, 10, 0.0000000000000001, label="Min stress change: ") 
    321         #OWGUI.spin(ib, self, "mdsSteps", 1, 100000, 1, label="MDS steps: ") 
    322         #OWGUI.spin(ib, self, "mdsRefresh", 1, 100000, 1, label="MDS refresh steps: ") 
    323         #ibs = OWGUI.widgetBox(ib, orientation="horizontal") 
    324         #OWGUI.checkBox(ibs, self, 'mdsTorgerson', "Torgerson's approximation") 
    325         #OWGUI.checkBox(ibs, self, 'mdsAvgLinkage', "Use average linkage") 
    326         #OWGUI.checkBox(ib, self, 'mdsFromCurrentPos', "MDS from current positions") 
    327         #self.mdsInfoA=OWGUI.widgetLabel(ib, "Avg. stress:") 
    328         #self.mdsInfoB=OWGUI.widgetLabel(ib, "Num. steps:") 
    329         #self.rotateSteps = 100 
    330310         
    331311        #OWGUI.spin(ib, self, "rotateSteps", 1, 10000, 1, label="Rotate max steps: ") 
     
    505485        self.error('') 
    506486        self.information('') 
    507         self.showDistancesCheckBox.setEnabled(0) 
     487        self.cb_show_distances.setEnabled(0) 
     488        self.cb_show_component_distances.setEnabled(0) 
    508489         
    509490        if matrix is None or self.graph_base is None: 
     
    520501        self.items_matrix = matrix 
    521502        self.networkCanvas.items_matrix = matrix 
    522         self.showDistancesCheckBox.setEnabled(1) 
     503        self.cb_show_distances.setEnabled(1) 
     504        self.cb_show_component_distances.setEnabled(1) 
    523505         
    524506        if str(self.optMethod) in ['8', '9', '10']: 
     
    558540        else: 
    559541            self.networkCanvas.showComponentAttribute = self.showComponentCombo.currentText()      
    560              
    561 #        self.networkCanvas.drawPlotItems() 
     542         
     543        self.networkCanvas.drawComponentKeywords() 
    562544         
    563545    def nameComponents(self): 
     
    579561        else: 
    580562            keyword_table = Orange.data.Table(Orange.data.Domain(Orange.data.variable.String('component name')), [[''] for i in range(len(self.graph_base.items()))])  
    581          
     563             
    582564        import obiGO  
    583565        ontology = obiGO.Ontology.Load(progressCallback=self.progressBarSet)  
     
    659641            res1 = annotations.GetEnrichedTerms(genes, aspect="P") 
    660642            res2 = annotations.GetEnrichedTerms(genes, aspect="F") 
    661             res = res1_base.items() + res2.items() 
     643            res = res1.items() + res2.items() 
    662644            #namingScore = [[(1-p_value) * (float(len(g)) / len(genes)) / (float(ref) / len(annotations.geneNames)), ontology.terms[GOId].name, len(g), ref, p_value] for GOId, (g, p_value, ref) in res.items() if p_value < 0.1] 
    663645            #namingScore = [[(1-p_value) * len(g) / ref, ontology.terms[GOId].name, len(g), ref, p_value] for GOId, (g, p_value, ref) in res.items() if p_value < 0.1] 
     
    12191201        qApp.processEvents() 
    12201202        self.networkCanvas.networkCurve.layout_fr(100, weighted=False, smooth_cooling=True) 
    1221         self.networkCanvas.networkCurve.update_properties() 
    1222         self.networkCanvas.replot() 
    1223            
    1224          
    1225          
     1203        self.networkCanvas.update_canvas()         
     1204 
    12261205    def set_graph_none(self): 
    12271206        self.graph = None 
     
    12591238            self.set_items_distance_matrix(None) 
    12601239         
    1261 #        if self._items is not None and 'x' in self._items.domain and 'y' in self._items.domain: 
    1262 #            positions = [(self._items[node]['x'].value, self._items[node]['y'].value) \ 
    1263 #                         for node in sorted(self.graph) if self._items[node]['x'].value != '?' \ 
    1264 #                         and self._items[node]['y'].value != '?'] 
    1265 #            self.layout.set_graph(self.graph, positions) 
    1266 #        else: 
    1267 #            self.layout.set_graph(self.graph) 
    1268          
    12691240        self.number_of_nodes_label = self.graph.number_of_nodes() 
    12701241        self.number_of_edges_label = self.graph.number_of_edges() 
    12711242         
    1272         #self.networkCanvas.set_graph_layout(self.graph, self.layout, items=self.graph_base.items(), links=self.graph_base.links()) 
    12731243        self.networkCanvas.set_graph(self.graph, items=self.graph_base.items(), links=self.graph_base.links()) 
     1244         
     1245        if self._items is not None and 'x' in self._items.domain and 'y' in self._items.domain: 
     1246            positions = dict((node, (self._items[node]['x'].value, self._items[node]['y'].value)) \ 
     1247                         for node in self.graph if self._items[node]['x'].value != '?' \ 
     1248                         and self._items[node]['y'].value != '?') 
     1249             
     1250            self.networkCanvas.networkCurve.set_node_coordinates(positions) 
     1251 
    12741252         
    12751253        self.networkCanvas.showEdgeLabels = self.showEdgeLabels 
     
    14931471             
    14941472        self.optButton.setChecked(False) 
    1495         self.networkCanvas.networkCurve.update_properties() 
    1496         self.networkCanvas.replot() 
     1473        self.networkCanvas.update_canvas() 
    14971474        qApp.processEvents() 
    14981475         
     
    17871764        font = self.networkCanvas.font() 
    17881765        font.setPointSize(self.fontSize) 
    1789         self.networkCanvas.setFont(font)  
     1766        self.networkCanvas.setFont(font) 
     1767        self.networkCanvas.fontSize = font  
    17901768         
    17911769                 
Note: See TracChangeset for help on using the changeset viewer.