⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 owcorranalysis.py

📁 orange源码 数据挖掘技术
💻 PY
📖 第 1 页 / 共 2 页
字号:
        self.percRow = len(self.tipsR) > 100 and 0.5 * len(self.tipsR) or len(self.tipsR)
        self.colSlider.setMinValue(1)
        self.colSlider.setMaxValue(len(self.tipsC))
        self.percCol = len(self.tipsC) > 100 and 0.5 * len(self.tipsC) or len(self.tipsC)
        
        
        self.initAxesValues()
        self.tabsMain.showPage(self.graph)
        self.calcRadius()
        
        del caList
        
    def initAxesValues(self):
        self.attrXCombo.clear()
        self.attrYCombo.clear()
        
        if self.data == None: return 
            
        for i in range(1, min(self.CA.D.shape) + 1):
            self.attrXCombo.insertItem(str(i))
            self.attrYCombo.insertItem(str(i))        
        
        self.attrX = str(self.attrXCombo.text(0))
        if self.attrYCombo.count() > 1: 
            self.attrY = str(self.attrYCombo.text(1))
        else:                           
            self.attrY = str(self.attrYCombo.text(0))
            
        self.contributionBox()
        
    def contributionBox(self):
        self.firstAxis.setText ('Axis %d: %f%%' % (int(self.attrX), self.CA.InertiaOfAxis(1)[int(self.attrX)-1]))
        self.secondAxis.setText ('Axis %d: %f%%' % (int(self.attrY), self.CA.InertiaOfAxis(1)[int(self.attrY)-1]))            
        
        self.updateGraph()
        
    def buttonUpdate(self):
        self.apply = True
        self.updateGraph()
        self.apply = False
    def updateGraph(self):
        self.graph.zoomStack = []
        if not self.data:
            return        
        if not self.apply:
            return
            
        self.graph.removeAllSelections()
##        self.graph.removeBrowsingCurve()        
        self.graph.removeCurves()
        self.graph.removeMarkers()
        self.graph.tips.removeAll()
        
        if self.graph.showXaxisTitle == 1: self.graph.setXaxisTitle("Axis " + self.attrX)
        else: self.graph.setXaxisTitle(None)

        if self.graph.showYLaxisTitle == 1: self.graph.setYLaxisTitle("Axis " + self.attrY)
        else: self.graph.setYLaxisTitle(None)        
        
        cor = self.CA.getPrincipalRowProfilesCoordinates((int(self.attrX)-1, int(self.attrY)-1))
        numCor = int(self.percRow)
        indices = self.CA.PointsWithMostInertia(rowColumn = 0, axis = (int(self.attrX)-1, int(self.attrY)-1))[:numCor]
        cor = [cor[i] for i in indices]
        tipsR = [self.tipsR[i] for i in indices]
        self.plotPoint(cor, 0, tipsR, "Row points", self.graph.showFilledSymbols)            
            
        cor = self.CA.getPrincipalColProfilesCoordinates((int(self.attrX)-1, int(self.attrY)-1))      
        numCor = int(self.percCol)
        indices = self.CA.PointsWithMostInertia(rowColumn = 1, axis = (int(self.attrX)-1, int(self.attrY)-1))[:numCor]
        cor = [cor[i] for i in indices]
        tipsC = [self.tipsC[i] for i in indices]
        self.plotPoint(cor, 1, tipsC, "Column points", self.graph.showFilledSymbols)

        self.graph.enableLegend(1)
        self.graph.replot()
    
        
    def plotPoint(self, cor, color, tips, curveName = "", showFilledSymbols = 1):
        fillColor = self.colors[color]
        edgeColor = self.colors[color]
               
        cor = array(cor)
        key = self.graph.addCurve(curveName, fillColor, edgeColor, self.graph.pointWidth, xData = list(cor[:, 0]), yData = list(cor[:, 1]), showFilledSymbols = showFilledSymbols)                 
        
        for i in range(len(cor)):
            x = cor[i][0]
            y = cor[i][1]           
         
            self.graph.tips.addToolTip(x, y, tips[i])   

    def sendSelections(self):
        pass
        
        
    def replotCurves(self):
        for key in self.graph.curveKeys():
            symbol = self.graph.curveSymbol(key)
            self.graph.setCurveSymbol(key, QwtSymbol(symbol.style(), symbol.brush(), symbol.pen(), QSize(self.graph.pointWidth, self.graph.pointWidth)))
        self.graph.repaint()
        
    def setShowGridlines(self):
        self.graph.enableGridXB(self.showGridlines)
        self.graph.enableGridYL(self.showGridlines)        
        
    def setColors(self):
        dlg = self.createColorDialog()
        if dlg.exec_loop():
            self.colorSettings = dlg.getColorSchemas()
            self.graph.contPalette = dlg.getContinuousPalette("contPalette")
            self.graph.discPalette = dlg.getDiscretePalette()
            self.graph.setCanvasBackground(dlg.getColor("Canvas"))
            self.graph.setGridPen(QPen(dlg.getColor("Grid")))
            self.updateGraph()

    def createColorDialog(self):
        c = OWDlgs.ColorPalette(self, "Color Palette")
        c.createDiscretePalette(" Discrete Palette ")
        c.createContinuousPalette("contPalette", " Continuous palette ")
        box = c.createBox("otherColors", " Other Colors ")
        c.createColorButton(box, "Canvas", "Canvas color", Qt.white)
        box.addSpace(5)
        c.createColorButton(box, "Grid", "Grid color", Qt.black)
        box.addSpace(5)
        box.adjustSize()
        c.setColorSchemas(self.colorSettings)
        return c    
    
    def calcRadius(self):
        self.graph.radius =  (self.graph.axisScale(QwtPlot.xBottom).hBound() - self.graph.axisScale(QwtPlot.xBottom).lBound()) * self.percRadius / 100.0;
        
class ZoomBrowseSelectToolbar(ZoomSelectToolbar):
    def __init__(self, widget, parent, graph, autoSend = 0):
        ZoomSelectToolbar.__init__(self, widget, parent, graph, autoSend)
        self.widget = widget
        group = QHButtonGroup("Browsing", parent)
        self.buttonBrowse = OWToolbars.createButton(group, "Browsing tool - Rectangle", self.actionBrowse, QPixmap(OWToolbars.dlg_browseRectangle), toggle = 1)
        self.buttonBrowseCircle = OWToolbars.createButton(group, "Browsing tool - Circle", self.actionBrowseCircle, QPixmap(OWToolbars.dlg_browseCircle), toggle = 1)        
        
    def actionZooming(self):
        ZoomSelectToolbar.actionZooming(self)
        if 'buttonBrowse' in dir(self): self.buttonBrowse.setOn(0)
        if 'buttonBrowseCircle' in dir(self): self.buttonBrowseCircle.setOn(0)

    def actionRectangleSelection(self):
        ZoomSelectToolbar.actionRectangleSelection(self)
        if 'buttonBrowse' in dir(self): self.buttonBrowse.setOn(0)
        if 'buttonBrowseCircle' in dir(self): self.buttonBrowseCircle.setOn(0)

    def actionPolygonSelection(self):
        ZoomSelectToolbar.actionPolygonSelection(self)
        if 'buttonBrowse' in dir(self): self.buttonBrowse.setOn(0)
        if 'buttonBrowseCircle' in dir(self): self.buttonBrowseCircle.setOn(0)
        
    def actionBrowse(self):
        state = self.buttonBrowse.isOn()
        self.buttonBrowse.setOn(state)
        self.graph.activateBrowsing(state)
        if state:
            self.buttonBrowseCircle.setOn(0)
            self.buttonZoom.setOn(0)
            self.buttonSelectRect.setOn(0)
            self.buttonSelectPoly.setOn(0)   
            if self.widget and "toolbarSelection" in self.widget.__dict__.keys(): self.widget.toolbarSelection = 3
            self.widget.calcRadius()
        else:
            self.buttonZoom.setOn(1)            
            if self.widget and "toolbarSelection" in self.widget.__dict__.keys(): self.widget.toolbarSelection = 0
            
    def actionBrowseCircle(self):
        state = self.buttonBrowseCircle.isOn()
        self.buttonBrowseCircle.setOn(state)
        self.graph.activateBrowsingCircle(state)
        if state:
            self.buttonBrowse.setOn(0)
            self.buttonZoom.setOn(0)
            self.buttonSelectRect.setOn(0)
            self.buttonSelectPoly.setOn(0)
            if self.widget and "toolbarSelection" in self.widget.__dict__.keys(): self.widget.toolbarSelection = 4
            self.widget.calcRadius()
        else:
            self.buttonZoom.setOn(1)
            if self.widget and "toolbarSelection" in self.widget.__dict__.keys(): self.widget.toolbarSelection = 0

if __name__=="__main__":
    from orngTextCorpus import *
    import cPickle
##    os.chdir("/home/mkolar/Docs/Diplomski/repository/orange/OrangeWidgets/Other/")
    appl = QApplication(sys.argv) 
    ow = OWCorrAnalysis() 
    appl.setMainWidget(ow) 
    ow.show() 
##    dataset = orange.ExampleTable('/home/mkolar/Docs/Diplomski/repository/orange/doc/datasets/iris.tab') 

##    lem = lemmatizer.FSALemmatization('/home/mkolar/Docs/Diplomski/repository/orange/OrangeWidgets/TextData/engleski_rjecnik.fsa')
##    for word in loadWordSet('/home/mkolar/Docs/Diplomski/repository/orange/OrangeWidgets/TextData/engleski_stoprijeci.txt'):
##        lem.stopwords.append(word)       
##    a = TextCorpusLoader('/home/mkolar/Docs/Diplomski/repository/orange/OrangeWidgets/Other/reuters-exchanges-small.xml', lem = lem)

    #a = orange.ExampleTable('../../doc/datasets/smokers_ct.tab')
    f=open('../../CDFSallDataCW', 'r')
    a =cPickle.load(f)
    f.close()
    ow.dataset(a) 
    appl.exec_loop()            

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -