Changeset 8474:7a2999736a6f in orange


Ignore:
Timestamp:
07/26/11 15:40:23 (3 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
357e112583aa3769bc2acda9a7bb41e90879f0de
Message:
 
Location:
orange/OrangeWidgets/Prototypes
Files:
2 edited

Legend:

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

    r8465 r8474  
    3939      self.name = "Network Curve" 
    4040      self.showEdgeLabels = 0 
     41       
     42  def set_node_size(self, values={}, min_size=0, max_size=0): 
     43      orangeplot.NetworkCurve.set_node_size(self, values, min_size, max_size) 
    4144       
    4245  def move_selected_nodes(self, dx, dy): 
     
    241244        self.maxEdgeSize = 1 
    242245         
    243         self.maxVertexSize = 5 
    244         self.minVertexSize = 5 
    245246        self.invertEdgeSize = 0 
    246247        self.showComponentAttribute = None 
     
    276277    def get_marked_nodes(self): 
    277278      return self.networkCurve.get_marked_nodes() 
    278          
    279     def getVertexSize(self, index): 
    280         return 6 
    281279         
    282280    def set_hidden_nodes(self, nodes): 
     
    13091307#                edge.pen = QPen(edge.pen.color(), 1) 
    13101308#                edge.pen.setCapStyle(Qt.RoundCap) 
    1311         pass                 
    1312     def setVerticesSize(self, column=None, inverted=0): 
    1313         if self.layout is None or self.graph is None or self.items is None: 
    1314             return 
    1315          
    1316         column = str(column) 
    1317          
    1318         if column in self.items.domain or (column.startswith("num of ") and column.replace("num of ", "") in self.items.domain): 
    1319             values = [] 
    1320              
    1321             if column in self.items.domain: 
    1322                 values = [self.items[x][column].value for x in self.graph if not self.items[x][column].isSpecial()] 
    1323             else: 
    1324                 values = [len(self.items[x][column.replace("num of ", "")].value.split(',')) for x in self.graph] 
    1325            
    1326             minVertexWeight = float(min(values or [0])) 
    1327             maxVertexWeight = float(max(values or [0])) 
    1328              
    1329             if maxVertexWeight - minVertexWeight == 0: 
    1330                 k = 1 #doesn't matter 
    1331             else: 
    1332                 k = (self.maxVertexSize - self.minVertexSize) / (maxVertexWeight - minVertexWeight) 
    1333              
    1334             def getValue(v): 
    1335                 if v.isSpecial(): 
    1336                     return minVertexWeight 
    1337                 else: 
    1338                     return float(v) 
    1339                   
    1340             if inverted: 
    1341                 for key, vertex in self.networkCurve.vertices.iteritems(): 
    1342                     if column in self.items.domain: 
    1343                         vertex.size = self.maxVertexSize - ((getValue(self.items[vertex.index][column]) - minVertexWeight) * k) 
    1344                     else: 
    1345                         vertex.size = self.maxVertexSize - ((len(self.items[vertex.index][column.replace("num of ", "")].value.split(',')) - minVertexWeight) * k) 
    1346                      
    1347                      
    1348                     vertex.pen.setWidthF(1 + float(vertex.size) / 20) 
    1349             else: 
    1350                 for key, vertex in self.networkCurve.vertices.iteritems(): 
    1351                     if column in self.items.domain: 
    1352                         vertex.size = (getValue(self.items[vertex.index][column]) - minVertexWeight) * k + self.minVertexSize 
    1353                     else: 
    1354                         vertex.size = (float(len(self.items[vertex.index][column.replace("num of ", "")].value.split(','))) - minVertexWeight) * k + self.minVertexSize 
    1355                          
    1356                     #print vertex.size 
    1357                     vertex.pen.setWidthF(1 + float(vertex.size) / 20) 
    1358         else: 
    1359             for key, vertex in self.networkCurve.vertices.iteritems(): 
    1360                 vertex.size = self.maxVertexSize 
    1361                 vertex.pen.setWidthF(1 + float(vertex.size) / 20) 
    1362        
     1309        pass 
     1310     
    13631311    def updateCanvas(self): 
    13641312        self.updateData() 
  • orange/OrangeWidgets/Prototypes/OWNxExplorerQt.py

    r8465 r8474  
    133133         
    134134        self.networkCanvas.maxLinkSize = self.maxLinkSize 
    135         self.networkCanvas.minVertexSize = self.minVertexSize 
    136         self.networkCanvas.maxVertexSize = self.maxVertexSize 
     135        self.networkCanvas.networkCurve.set_min_node_size(self.minVertexSize) 
     136        self.networkCanvas.networkCurve.set_max_node_size(self.maxVertexSize) 
    137137         
    138138        self.hcontroArea = OWGUI.widgetBox(self.controlArea, orientation='horizontal') 
     
    13981398            self.graph_layout_method()             
    13991399             
    1400         if self.vertexSize > 0: 
    1401             self.networkCanvas.setVerticesSize(self.vertexSizeCombo.currentText(), self.invertSize) 
    1402         else: 
    1403             self.networkCanvas.setVerticesSize() 
    1404              
     1400        self.setVertexSize() 
    14051401        self.setVertexColor() 
    14061402        self.setEdgeColor() 
     
    18201816            self.maxVertexSize = self.minVertexSize 
    18211817         
    1822         self.networkCanvas.minVertexSize = self.minVertexSize 
    1823         self.networkCanvas.maxVertexSize = self.maxVertexSize 
    18241818        self.lastVertexSizeColumn = self.vertexSizeCombo.currentText() 
    18251819         
    1826         if self.vertexSize > 0: 
    1827             self.networkCanvas.setVerticesSize(self.lastVertexSizeColumn, self.invertSize) 
     1820        column = str(self.vertexSizeCombo.currentText()) 
     1821        items = self.graph_base.items() 
     1822        values = {} 
     1823        if column in items.domain or (column.startswith("num of ") and column.replace("num of ", "") in items.domain): 
     1824            if column in items.domain: 
     1825                values = dict((x, items[x][column].value) for x in self.graph if not items[x][column].isSpecial()) 
     1826            else: 
     1827                values = dict((x, len(items[x][column.replace("num of ", "")].value.split(','))) for x in self.graph) 
     1828         
     1829        if len(values) == 0: 
     1830            values = dict((node, 1.) for node in self.graph) 
     1831             
     1832        if self.invertSize: 
     1833            # TODO: inverted 
     1834            self.networkCanvas.networkCurve.set_node_size(values, min_size=self.minVertexSize, max_size=self.maxVertexSize) 
    18281835        else: 
    1829             self.networkCanvas.setVerticesSize() 
    1830              
     1836            self.networkCanvas.networkCurve.set_node_size(values, min_size=self.minVertexSize, max_size=self.maxVertexSize) 
     1837             
     1838        self.networkCanvas.networkCurve.set_dirty() 
    18311839        self.networkCanvas.replot() 
    18321840         
Note: See TracChangeset for help on using the changeset viewer.