Changeset 3480:90556dc4c7d8 in orange


Ignore:
Timestamp:
04/04/07 13:11:25 (7 years ago)
Author:
Gregor <Gregor@…>
Branch:
default
Convert:
57f5aea4c5cc53722e4fb911731310b1a5373915
Message:
  • removed ExampleTableWithClass
  • changed signal names
Location:
orange/OrangeWidgets/Associate
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Associate/OWDistanceMap.py

    r3228 r3480  
    33<description>Displays distance matrix as a heat map.</description> 
    44<icon>icons/DistanceMap.png</icon> 
    5 <contact>Blaz Zupan (blaz.zupan(@at@)fri.uni-lj.si)</contact>  
     5<contact>Blaz Zupan (blaz.zupan(@at@)fri.uni-lj.si)</contact> 
    66<priority>1500</priority> 
    77""" 
     
    4848v_legend_offsetY = 15 
    4949 
    50 class OWDistanceMap(OWWidget):   
     50class OWDistanceMap(OWWidget): 
    5151    settingsList = ["CellWidth", "CellHeight", "Merge", "Gamma", "CutLow", "CutHigh", "CutEnabled", "Sort", 
    5252                    "ShowLegend", "ShowAnnotations", "ShowBalloon", "ShowItemsInBalloon", "SendOnRelease", "ColorSchemas"] 
     
    5454    def __init__(self, parent=None, signalManager = None): 
    5555        self.callbackDeposit = [] # deposit for OWGUI callback function 
    56         OWWidget.__init__(self, parent, signalManager, 'Distance Map')  
     56        OWWidget.__init__(self, parent, signalManager, 'Distance Map') 
    5757 
    5858        self.inputs = [("Distance Matrix", orange.SymMatrix, self.setMatrix)] 
    59         self.outputs = [("Examples", ExampleTable), ("Classified Examples", ExampleTableWithClass),("Attribute List", orange.VarList)] 
     59        self.outputs = [("Examples", ExampleTable), ("Examples", ExampleTable),("Attribute List", orange.VarList)] 
    6060 
    6161        self.clicked = False 
     
    6868        self.ColorSchemas = None 
    6969 
    70         self.shiftPressed = False         
     70        self.shiftPressed = False 
    7171 
    7272        #set default settings 
     
    8484        self.ShowItemsInBalloon = 1 
    8585        self.SendOnRelease = 1 
    86          
     86 
    8787        self.loadSettings() 
    88          
     88 
    8989        self.maxHSize = 30; self.maxVSize = 30 
    9090        self.sorting = [("None", self.sortNone), ("Adjacent distance", self.sortAdjDist), ("Random", self.sortRandom)] 
    9191 
    9292        self.matrix = self.order = None 
    93          
     93 
    9494        # GUI definition 
    9595        self.tabs = QTabWidget(self.controlArea, 'tabWidget') 
     
    102102        OWGUI.checkBox(box, self, "SquareCells", "Cells as squares", callback = self.drawDistanceMap) 
    103103        OWGUI.checkBox(box, self, "Grid", "Show grid", callback = self.createDistanceMap) 
    104          
     104 
    105105        OWGUI.qwtHSlider(tab, self, "Gamma", box="Gamma", minValue=0.1, maxValue=1, step=0.1, callback=self.drawDistanceMap) 
    106106 
     
    129129        OWGUI.checkBox(box, self, 'ShowLegend', 'Show legend', callback=self.drawDistanceMap) 
    130130        OWGUI.checkBox(box, self, 'ShowAnnotations', 'Show annotations', callback=self.drawDistanceMap) 
    131          
     131 
    132132        box = QVButtonGroup("Balloon", tab) 
    133133        OWGUI.checkBox(box, self, 'ShowBalloon', "Show balloon", callback=None) 
     
    144144 
    145145        self.tabs.insertTab(tab, "Info") 
    146          
     146 
    147147        self.resize(700,400) 
    148148 
     
    152152 
    153153        self.layout.add(self.canvasView) 
    154          
     154 
    155155 
    156156        #construct selector 
     
    177177        if self.ColorSchemas: 
    178178            self.colorPalette.setColorSchemas(self.ColorSchemas) 
    179          
     179 
    180180    def createColorStripe(self, palette): 
    181181        dx = v_legend_width 
     
    218218        else: 
    219219            return self.CellHeight 
    220          
     220 
    221221    def sendOutput(self): 
    222222        if len(self.matrix.items)<1: 
     
    229229            self.send("Attribute List", None) 
    230230            self.send("Examples", None) 
    231             self.send("Classified Examples", None) 
    232231        else: 
    233232            selection = self.selection.getSelection() 
     
    255254                self.send("Attribute List", selected) 
    256255 
    257                  
     256 
    258257            if isinstance(items[0], orange.Example): 
    259258                ex = [items[x] for x in selectedIndices] 
    260259                selected = orange.ExampleTable(items[0].domain, ex) 
    261260                self.send("Examples", selected) 
    262                 if selected.domain.classVar: 
    263                     self.send("Classified Examples", selected) 
    264                  
     261 
    265262    # callbacks (rutines called after some GUI event, like click on a button) 
    266263 
     
    308305 
    309306        self.errorText.hide() 
    310              
     307 
    311308        lo = self.CutEnabled and self.CutLow   or self.lowerBound 
    312309        hi = round(self.CutEnabled and self.CutHigh  or self.upperBound, 1) 
    313310 
    314311        self.offsetX = 5 
    315          
     312 
    316313        if self.distanceImage: 
    317314            self.distanceImage.setCanvas(None) 
     
    347344                tmp = [i for i in range(0, len(items))] 
    348345            else: 
    349                 tmp = [self.distanceMap.elementIndices[i] for i in range(0, len(items))]                 
     346                tmp = [self.distanceMap.elementIndices[i] for i in range(0, len(items))] 
    350347 
    351348            if self.distanceMapConstructor.order: 
     
    379376                self.annotationText[i*2 + 1].setX(self.offsetX) 
    380377                self.annotationText[i*2 + 1].setY(self.offsetY + maxHeight + 10 + i*self.CellHeight) 
    381                  
     378 
    382379            self.offsetX += maxWidth + 10 
    383380            self.offsetY += maxHeight + 10 
    384                     
     381 
    385382        self.distanceImage = ImageItem(bitmap, self.canvas, width, height, palette, x=self.offsetX, y=self.offsetY, z=0) 
    386383        self.distanceImage.height = height 
     
    393390        self.selector.setPen(QPen(self.qrgbToQColor(color),v_sel_width)) 
    394391        self.selector.setSize(self.CellWidth, self.getCellHeight()) 
    395          
     392 
    396393        self.updateSelectionRect() 
    397394        self.canvas.update() 
     
    407404            selLine.setPoints(self.offsetX + x*self.CellWidth, self.offsetY + y*self.getCellHeight(), 
    408405                              self.offsetX + x*self.CellWidth, self.offsetY + (y+1)*self.getCellHeight()) 
    409         color = self.colorPalette.getCurrentColorSchema().getAdditionalColors()["Selected cells"]             
    410         selLine.setPen(QPen(self.qrgbToQColor(color),v_sel_width))         
    411         selLine.setZ(20)             
     406        color = self.colorPalette.getCurrentColorSchema().getAdditionalColors()["Selected cells"] 
     407        selLine.setPen(QPen(self.qrgbToQColor(color),v_sel_width)) 
     408        selLine.setZ(20) 
    412409        selLine.show(); 
    413410        self.selectionLines += [selLine] 
    414              
     411 
    415412    def updateSelectionRect(self): 
    416413        entireSelection = [] 
     
    418415        for selLine in self.selectionLines: 
    419416            selLine.setCanvas(None) 
    420              
     417 
    421418        self.selectionLines = [] 
    422419        if len(self.selection.getSelection())>0: 
     
    431428                if (not (selTuple[0] - 1, selTuple[1]) in entireSelection): 
    432429                    self.addSelectionLine(selTuple[0], selTuple[1], 1) 
    433                      
     430 
    434431                #check up 
    435432                if (not (selTuple[0], selTuple[1] - 1) in entireSelection): 
     
    438435                #check down 
    439436                if (not (selTuple[0], selTuple[1] + 1) in entireSelection): 
    440                     self.addSelectionLine(selTuple[0], selTuple[1] + 1, 0)                     
     437                    self.addSelectionLine(selTuple[0], selTuple[1] + 1, 0) 
    441438 
    442439                #check right 
    443440                if (not (selTuple[0] + 1, selTuple[1]) in entireSelection): 
    444                     self.addSelectionLine(selTuple[0] + 1, selTuple[1], 1)                     
    445         self.canvas.update()     
    446  
    447              
     441                    self.addSelectionLine(selTuple[0] + 1, selTuple[1], 1) 
     442        self.canvas.update() 
     443 
     444 
    448445    def mouseMove(self, x, y): 
    449446        row = self.rowFromMousePos(x,y) 
     
    467464                j = self.getItemFromPos(row) 
    468465                self.bubble.head.setText(str(self.matrix[i, j])) 
    469                
     466 
    470467                if (self.ShowItemsInBalloon == 1): 
    471468                    namei, namej = self.matrix.items[i], self.matrix.items[j] 
     
    495492            OWWidget.keyPressEvent(self, e) 
    496493 
    497     def keyReleaseEvent(self, e):         
     494    def keyReleaseEvent(self, e): 
    498495        if e.key() == 4128: 
    499496            self.shiftPressed = False 
    500497        else: 
    501498            OWWidget.keyReleaseEvent(self, e) 
    502          
     499 
    503500    def mousePress(self, x,y): 
    504501        self.clicked = True 
     
    508505            self.selection.clear() 
    509506        self.selection.SelStart(col, row) 
    510          
     507 
    511508    def mouseRelease(self, x,y): 
    512509        if self.clicked==True: 
     
    527524        self.selection.undo() 
    528525        self.updateSelectionRect() 
    529      
     526 
    530527    def actionRemoveAllSelections(self): 
    531528        self.selection.clear() 
    532529        self.updateSelectionRect() 
    533                          
     530 
    534531 
    535532    ########################################################################## 
     
    562559        # check if the same length 
    563560        self.matrix = matrix 
    564         self.constructDistanceMap()         
     561        self.constructDistanceMap() 
    565562 
    566563 
     
    577574        self.setX(x); self.setY(y); self.setZ(z) 
    578575        self.show() 
    579          
     576 
    580577    def drawShape(self, painter): 
    581578        painter.drawImage(self.x(), self.y(), self.image, 0, 0, -1, -1) 
     
    588585        self.hiddenText = QCanvasText(text, canvas) 
    589586        xsize = self.hiddenText.boundingRect().height() 
    590         ysize = self.hiddenText.boundingRect().width()         
     587        ysize = self.hiddenText.boundingRect().width() 
    591588        self.setSize(xsize, ysize) 
    592589 
     
    595592        self.hiddenText = QCanvasText(text, canvas) 
    596593        xsize = self.hiddenText.boundingRect().height() 
    597         ysize = self.hiddenText.boundingRect().width()         
     594        ysize = self.hiddenText.boundingRect().width() 
    598595        self.setSize(xsize, ysize) 
    599596 
    600597    def setAngle(self, angle): 
    601598        self.rotateAngle = rotateAngle 
    602          
     599 
    603600    def draw(self, painter): 
    604601        pixmap = QPixmap() 
     
    616613        helpPainter.drawText(-ysize - 1, xsize, self.text) 
    617614        helpPainter.end() 
    618              
     615 
    619616        painter.drawPixmap(self.x(), self.y(), pixmap) 
    620617################################################################################################## 
     
    634631        self.currSelEnd = QPoint(x,y) 
    635632        self.selecting = True 
    636          
     633 
    637634    def UpdateSel(self, x, y): 
    638635        self.currSelEnd = QPoint(x,y) 
     
    640637    def CancelSel(self): 
    641638        self.selecting = False 
    642          
     639 
    643640    def SelEnd(self): 
    644641        minx = min(self.currSel.x(), self.currSelEnd.x()) 
     
    647644        miny = min(self.currSel.y(), self.currSelEnd.y()) 
    648645        maxy = max(self.currSel.y(), self.currSelEnd.y()) 
    649              
     646 
    650647        if (minx==maxx) and (miny==maxy): 
    651648            maxx+=1 
    652649            maxy+=1 
    653          
     650 
    654651        self.selection += [(QPoint(minx, miny),QPoint(maxx,maxy))] 
    655652        self.selecting = False 
     
    661658        if len(self.selection)>0: 
    662659            del self.selection[len(self.selection)-1] 
    663                          
     660 
    664661    def getSelection(self): 
    665662        res = self.selection + [] 
     
    675672 
    676673 
    677          
     674 
    678675################################################################################################## 
    679676# bubble info class 
     
    716713        self.setSize(w,h) 
    717714        self.bubbleShadow.setSize(w,h) 
    718          
     715 
    719716    def show(self): 
    720717        QCanvasRectangle.show(self) 
     
    744741                matrix[i, j] = dist(data[i], data[j]) 
    745742        return matrix 
    746      
     743 
    747744    import orange 
    748745    a = QApplication(sys.argv) 
     
    753750 
    754751    data = orange.ExampleTable(r'../../doc/datasets/wt') 
    755      
     752 
    756753    matrix = computeMatrix(data) 
    757754    ow.setMatrix(matrix) 
  • orange/OrangeWidgets/Associate/OWHierarchicalClustering.py

    r3244 r3480  
    122122        OWGUI.checkBox(self.selectionTab, self, "DisableHighlights", "Disable highlights") 
    123123        OWGUI.checkBox(self.selectionTab, self, "DisableBubble", "Disable bubble info") 
    124         OWGUI.button(self.controlArea, self, "&Save graph", self.saveGraph) 
     124        OWGUI.button(self.controlArea, self, "&Save graph", self.saveGraph, debuggingEnabled = 0) 
    125125 
    126126        self.mainAreaLayout=QVBoxLayout(self.mainArea, QVBoxLayout.TopToBottom,0) 
  • orange/OrangeWidgets/Associate/OWInteractionGraph.py

    r3417 r3480  
    33<description>Interaction graph construction and viewer.</description> 
    44<icon>icons/InteractionGraph.png</icon> 
    5 <contact>Aleks Jakulin</contact>  
     5<contact>Aleks Jakulin</contact> 
    66<priority>4000</priority> 
    77""" 
    88# InteractionGraph.py 
    99# 
    10 #  
     10# 
    1111 
    1212from OWWidget import * 
     
    3232 
    3333    def contentsMoving(self, x,y): 
    34         self.parent.contentsMoving(x,y)         
     34        self.parent.contentsMoving(x,y) 
    3535 
    3636 
     
    4040class OWInteractionGraph(OWWidget): 
    4141    settingsList = ["onlyImportantInteractions"] 
    42      
     42 
    4343    def __init__(self, parent=None, signalManager = None): 
    4444        OWWidget.__init__(self, parent, signalManager, "Interaction graph") 
    4545 
    46         self.inputs = [("Examples", ExampleTable, self.cdata)] 
     46        self.inputs = [("Examples", ExampleTable, self.setData)] 
    4747        self.outputs = [("Examples", ExampleTable), ("Attribute Pair", list), ("Selected Attributes List", list)] 
    48      
     48 
    4949 
    5050        #set default settings 
     
    7070        # add a settings dialog and initialize its values 
    7171        self.splitCanvas = QSplitter(self.mainArea) 
    72          
     72 
    7373        self.canvasL = QCanvas(2000, 2000) 
    7474        self.canvasViewL = IntGraphView(self, "interactions", self.canvasL, self.splitCanvas) 
    7575        self.canvasViewL.show() 
    76          
     76 
    7777        self.canvasR = QCanvas(2000,2000) 
    7878        self.canvasViewR = IntGraphView(self, "graph", self.canvasR, self.splitCanvas) 
     
    9393        self.hiddenAttribsLB = QListBox(self.hiddenAttribsGroup) 
    9494        self.hiddenAttribsLB.setSelectionMode(QListBox.Extended) 
    95          
     95 
    9696        self.attrAddButton = QPushButton("Add attr.", self.addRemoveGroup) 
    9797        self.attrRemoveButton = QPushButton("Remove attr.", self.addRemoveGroup) 
     
    9999        self.mergeAttributesCB = QCheckBox('Merge attributes', self.space) 
    100100        self.importantInteractionsCB = QCheckBox('Show only important interactions', self.space) 
    101          
     101 
    102102        self.selectionButton = QPushButton("Show selection", self.space) 
    103103 
     
    126126        if b == 0: 
    127127            self.updateNewData(self.originalData) 
    128          
     128 
    129129 
    130130    def showImportantInteractions(self, b): 
     
    139139        x = point.x() 
    140140        y = point.y() 
    141          
     141 
    142142        if rect.left() > x: return 0 
    143143        if rect.right() < x: return 0 
     
    146146 
    147147        return 1 
    148          
     148 
    149149    # if we clicked on edge label send "wiew" signal, if clicked inside rectangle select/unselect attribute 
    150150    def mousePressed(self, name, ev): 
     
    188188                    print "Attribute pair already in the domain" 
    189189                    return 
    190          
     190 
    191191            tempData = data.select(list(data.domain) + [cart]) 
    192192            dd = orange.DomainDistributions(tempData) 
     
    202202 
    203203            #rest = newData.select({cart.name:todoList}) 
    204              
     204 
    205205            #print "intervals = %d, non clear values = %d" % (len(cart.values), len(todoList)) 
    206206            #print "entropy left = %f" % (float(len(rest)) / float(self.dataSize)) 
     
    216216                self.graphs[i].blankClick = 0 
    217217 
    218     # click on selection button    
     218    # click on selection button 
    219219    def selectionClick(self): 
    220220        if self.data == None: return 
     
    229229 
    230230 
    231     ####### CDATA ################################ 
    232231    # receive new data and update all fields 
    233     def cdata(self, data): 
    234         if not data: 
     232    def setData(self, data): 
     233        self.warning([0,1]) 
     234 
     235        self.originalData = self.isDataWithClass(data, orange.VarTypes.Discrete) and data or None 
     236        if not self.originalData: 
    235237            return 
    236         self.originalData = orange.Preprocessor_dropMissing(data) 
    237  
    238         self.information(0) 
    239         self.information(1) 
     238 
     239        self.originalData = orange.Preprocessor_dropMissing(self.originalData) 
     240 
    240241        if len(self.originalData) != len(data): 
    241             self.information(0, "Examples with missing values were removed. Keeping %d of %d examples." % (len(data), len(self.originalData))) 
     242            self.warning(0, "Examples with missing values were removed. Keeping %d of %d examples." % (len(data), len(self.originalData))) 
    242243        if self.originalData.domain.hasContinuousAttributes(): 
    243             self.information(1, "Continuous attributes were discretized using entropy discretization.") 
     244            self.warning(1, "Continuous attributes were discretized using entropy discretization.") 
    244245 
    245246        self.dataSize = len(self.originalData) 
    246247 
    247248        self.updateNewData(self.originalData) 
    248          
     249 
    249250    def updateNewData(self, data): 
    250251        self.data = data 
     
    270271        self.interactionList.sort() 
    271272        self.interactionList.reverse() 
    272         
     273 
    273274        f = open('interaction.dot','w') 
    274275        self.interactionMatrix.exportGraph(f, significant_digits=3,positive_int=8,negative_int=8,absolute_int=0,url=1) 
     
    279280        (pipePngOut, pipePngIn) = os.popen2("dot interaction.dot -Tpng", "b") 
    280281        (pipePlainOut, pipePlainIn) = os.popen2("dot interaction.dot -Tismap", "t") 
    281          
     282 
    282283        textPng = pipePngIn.read() 
    283284        textPlainList = pipePlainIn.readlines() 
     
    294295            print "-----------------------------" 
    295296            return 
    296          
     297 
    297298        # create a picture 
    298299        pixmap = QPixmap() 
     
    308309        self.canvasR.setTiles(pixmap, 1, 1, width, height) 
    309310        self.canvasR.resize(width, height) 
    310          
     311 
    311312        self.rectIndices = {}       # QRect rectangles 
    312313        self.rectNames   = {}       # info about rectangle names (attributes) 
    313314        self.lines = []             # dict of form (rectName1, rectName2):(labelQPoint, [p1QPoint, p2QPoint, ...]) 
    314315 
    315          
     316 
    316317        self.parseGraphData(data, textPlainList, width, height) 
    317318        self.initLists(data)   # add all attributes found in .dot file to shown list 
    318319        self.showInteractionRects(data) # use interaction matrix to fill the left canvas with rectangles 
    319          
     320 
    320321        self.canvasL.update() 
    321322        self.canvasR.update() 
     
    339340                if item in list1: return 0 
    340341            #return 1 
    341          
     342 
    342343        if self.getAttrVisible(attrName1) == 0 or self.getAttrVisible(attrName2) == 0: return 0 
    343344        if self.onlyImportantInteractions == 1: 
     
    356357        # hide all interaction rectangles 
    357358        for (rect1, rect2, rect3, nbrect, text1, text2, tooltipRect, tooltipText) in self.interactionRects: 
    358             rect1.hide()  
    359             rect2.hide()  
     359            rect1.hide() 
     360            rect2.hide() 
    360361            rect3.hide() 
    361362            nbrect.hide() 
    362             text1.hide()  
     363            text1.hide() 
    363364            text2.hide() 
    364365            QToolTip.remove(self.canvasViewL, tooltipRect) 
     
    368369            item.hide() 
    369370        self.rectItems = [] 
    370          
     371 
    371372        ################################ 
    372373        # get max width of the attribute text 
    373         xOff = 0         
     374        xOff = 0 
    374375        for ((total, (gain1, gain2, attrIndex1, attrIndex2))) in self.interactionList: 
    375376            if not self.showInteractionPair(attrIndex1, attrIndex2): continue 
     
    398399            tick.show() 
    399400            self.rectItems.append(tick) 
    400          
     401 
    401402        text1 = QCanvasText("0%", self.canvasL);   text1.setTextFlags(Qt.AlignHCenter); text1.move(xOff, yOff - 23); text1.show() 
    402403        text2 = QCanvasText("50%", self.canvasL);  text2.setTextFlags(Qt.AlignHCenter); text2.move(xOff + xscale/2, yOff - 23); text2.show() 
     
    409410        for ((total, (gain1, gain2, attrIndex1, attrIndex2))) in self.interactionList: 
    410411            if not self.showInteractionPair(attrIndex1, attrIndex2): continue 
    411             
     412 
    412413            interaction = (total - gain1 - gain2) 
    413414            atts = (max(attrIndex1, attrIndex2), min(attrIndex1, attrIndex2)) 
     
    435436            nb_x2 = max(xOff, floor(xOff + 0.5*xscale*nbgain)) 
    436437            nbrect = QCanvasRectangle(nb_x1, rectsYOff-3, nb_x2-nb_x1+1, 2, self.canvasL) 
    437              
    438              
     438 
     439 
    439440            rect2 = QCanvasRectangle(x2, rectsYOff,   x3-x2+1, rectHeight, self.canvasL) 
    440441            rect1 = QCanvasRectangle(x1, rectsYOff, x2-x1+1, rectHeight, self.canvasL) 
    441              
     442 
    442443            rect3 = QCanvasRectangle(x3, rectsYOff, x4-x3, rectHeight, self.canvasL) 
    443444            if interaction < 0.0: 
     
    452453            brush2 = QBrush(color);   brush2.setStyle(style) 
    453454            brush3 = QBrush(Qt.blue); brush3.setStyle(Qt.FDiagPattern) 
    454              
     455 
    455456            rect1.setBrush(brush1); rect1.setPen(QPen(QColor(Qt.blue))) 
    456457            rect2.setBrush(brush2); rect2.setPen(QPen(color)) 
     
    465466            text1.move(xOff - 5, rectsYOff + 3) 
    466467            text2.move(xOff + xscale*total + 5, rectsYOff + 3) 
    467              
     468 
    468469            text1.show() 
    469470            text2.show() 
     
    477478            lineWidth = xOff + xscale*total + 5 + rect.width() + 10 
    478479            if  lineWidth > maxWidth: 
    479                 maxWidth = lineWidth  
     480                maxWidth = lineWidth 
    480481 
    481482            if rectsYOff + rectHeight + 10 > maxHeight: 
     
    516517                bottomRightRectStr = list[2] 
    517518                attrIndex = list[3] 
    518                  
     519 
    519520                isAttribute = 0     # does rectangle represent attribute 
    520521                if attrIndex.find("-") < 0: 
    521522                    isAttribute = 1 
    522                  
     523 
    523524                topLeftRectStr = topLeftRectStr.replace("(","") 
    524525                bottomRightRectStr = bottomRightRectStr.replace("(","") 
    525526                topLeftRectStr = topLeftRectStr.replace(")","") 
    526527                bottomRightRectStr = bottomRightRectStr.replace(")","") 
    527                  
     528 
    528529                topLeftRectList = topLeftRectStr.split(",") 
    529530                bottomRightRectList = bottomRightRectStr.split(",") 
     
    538539                rect.setPen(pen) 
    539540                rect.hide() 
    540                  
     541 
    541542                if isAttribute == 1: 
    542543                    name = data.domain[int(attrIndex)].name 
     
    600601            for i in range(self.hiddenAttribsLB.count()): 
    601602                if str(self.hiddenAttribsLB.text(i)) in names: return 0 
    602              
     603 
    603604        return 1 
    604605 
     
    634635    def saveToFileRCanvas(self): 
    635636        self.saveCanvasToFile(self.canvasViewR, self.canvasR.size()) 
    636          
     637 
    637638    def saveCanvasToFile(self, canvas, size): 
    638639        qfileName = QFileDialog.getSaveFileName("graph.png","Portable Network Graphics (.PNG)\nWindows Bitmap (.BMP)\nGraphics Interchange Format (.GIF)", None, "Save to..") 
     
    642643        ext = ext.replace(".","") 
    643644        ext = ext.upper() 
    644          
     645 
    645646        buffer = QPixmap(size) # any size can do, now using the window size 
    646647        painter = QPainter(buffer) 
     
    659660    a.exec_loop() 
    660661 
    661     #save settings  
     662    #save settings 
    662663    ow.saveSettings() 
  • orange/OrangeWidgets/Associate/OWKMeans.py

    r3076 r3480  
    33<description>K-means clustering.</description> 
    44<icon>icons/KMeans.png</icon> 
    5 <contact>Blaz Zupan (blaz.zupan(@at@)fri.uni-lj.si)</contact>  
     5<contact>Blaz Zupan (blaz.zupan(@at@)fri.uni-lj.si)</contact> 
    66<priority>2000</priority> 
    77""" 
     
    1919# main class 
    2020 
    21 class OWKMeans(OWWidget):    
     21class OWKMeans(OWWidget): 
    2222    settingsList = ["K", "DistanceMeasure"] 
    2323 
    2424    def __init__(self, parent=None, signalManager = None): 
    2525        self.callbackDeposit = [] # deposit for OWGUI callback functions 
    26         OWWidget.__init__(self, parent, signalManager, 'k-Means Clustering')  
    27          
    28         self.inputs = [("Examples", ExampleTable, self.dataset)] 
    29         self.outputs = [("Classified Examples", ExampleTableWithClass)] 
     26        OWWidget.__init__(self, parent, signalManager, 'k-Means Clustering') 
     27 
     28        self.inputs = [("Examples", ExampleTable, self.setData)] 
     29        self.outputs = [("Examples", ExampleTable)] 
    3030 
    3131        #set default settings 
     
    3737 
    3838        # GUI definition 
    39         # settings         
     39        # settings 
    4040        OWGUI.qwtHSlider(self.controlArea, self, "K", box="Number of Clusters", label="K: ", minValue=1, maxValue=30, step=1, callback=self.settingsChanged) 
    4141        OWGUI.comboBox(self.controlArea, self, "DistanceMeasure", box="Distance Measure", items=["Euclidean", "Manthattan"], tooltip=None, callback=self.settingsChanged) 
     
    120120        self.showResults() 
    121121        self.applyBtn.setDisabled(TRUE) 
    122         self.send("Classified Examples", self.cdata) 
    123          
    124     def dataset(self, data): 
     122        self.send("Examples", self.cdata) 
     123 
     124    def setData(self, data): 
    125125        if not data: 
    126126            pass 
     
    184184    a.setMainWidget(ow) 
    185185    d = orange.ExampleTable('glass') 
    186     ow.dataset(d) 
     186    ow.setData(d) 
    187187    ow.show() 
    188188    a.exec_loop() 
  • orange/OrangeWidgets/Associate/OWMDS.py

    r3440 r3480  
    114114        self.infoA=QLabel("Avg. stress:", infoBox) 
    115115        self.infoB=QLabel("Num. steps", infoBox) 
    116         OWGUI.button(self.controlArea, self, "Save", self.graph.saveToFile) 
     116        OWGUI.button(self.controlArea, self, "Save", self.graph.saveToFile, debuggingEnabled = 0) 
    117117        #self.info 
    118118        self.resize(900,700) 
  • orange/OrangeWidgets/Associate/OWSOMVisualizer.py

    r3303 r3480  
    643643 
    644644        OWGUI.separator(self.controlArea) 
    645         \ 
    646645        OWGUI.button(self.controlArea, self, "&Save Graph", callback=self.saveGraph, debuggingEnabled = 0) 
    647646         
Note: See TracChangeset for help on using the changeset viewer.