Changeset 4640:9b5209503ad2 in orange


Ignore:
Timestamp:
05/12/08 13:13:21 (6 years ago)
Author:
ales_erjavec <ales.erjavec@…>
Branch:
default
Convert:
288d534d1f051b0f4019d1c0e28c0938a08ca3c0
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/orngClustering.py

    r4639 r4640  
    2121        self.fontSize = fontSize 
    2222        self.treeColors = treeColors 
     23        self.lowColor = (0, 0, 0) 
     24        self.hiColor = (255, 255, 255) 
    2325 
    2426    def _getTextSizeHint(self, text): 
     
    4244            height = 20+fontSize*len(labels) 
    4345        try: 
    44             self.font = ImageFont.truetype("arial.ttf", fontSize) 
     46            self.font = ImageFont.truetype("cour.ttf", fontSize) 
    4547        except: 
    4648            self.font = ImageFont.load_default() 
     
    6870 
    6971    def SetMatrixColorScheme(self, low, hi): 
    70         pass 
     72        self.lowColor = low 
     73        self.hiColor = hi 
     74         
    7175    def _getColorScheme(self): 
    7276        vals = [float(val) for ex in self.data for val in ex if not val.isSpecial() and val.variable.varType==orange.VarTypes.Continuous] or [0] 
     
    7781                return None 
    7882            elif val.variable.varType==orange.VarTypes.Continuous: 
    79                 r = g = b = int(255.0*(float(val)-avg)/abs(maxVal-minVal)) 
     83##                r = g = b = int(255.0*(float(val)-avg)/abs(maxVal-minVal)) 
     84                r, g, b = [int(self.lowColor[i]+(self.hiColor[i]-self.lowColor[i])*(float(val)-avg)/abs(maxVal-minVal)) for i in range(3)] 
    8085            elif val.variable.varType==orange.VarTypes.Discrete: 
    8186                r = g = b = int(255.0*float(val)/len(val.variable.values)) 
     
    117122            else: 
    118123                self.globalHeight+=hAdvance 
    119                 return (textAreaStart, self.globalHeight-hAdvance/2) 
     124                return (treeAreaStart+treeAreaWidth, self.globalHeight-hAdvance/2) 
    120125        _drawTree(self.tree) 
    121         cellWidth = matrixAreaWidth/len(self.data.domain.attributes) 
     126        cellWidth = float(matrixAreaWidth)/len(self.data.domain.attributes) 
    122127        def _drawMatrixRow(ex, yPos): 
    123128            for i, attr in enumerate(ex.domain.attributes): 
    124129                col = colorSheme(ex[attr]) 
    125130                if col: 
    126                     self.painter.rectangle([(matrixAreaStart+i*cellWidth, yPos), (matrixAreaStart+(i+1)*cellWidth, yPos+hAdvance)], fill=colorSheme(ex[attr]))#, outline=self.defaultMatrixOutlineColor) 
     131                    if cellWidth>4: 
     132                        self.painter.rectangle([(int(matrixAreaStart+i*cellWidth), yPos), (int(matrixAreaStart+(i+1)*cellWidth), yPos+hAdvance)], fill=colorSheme(ex[attr]), outline=self.defaultMatrixOutlineColor) 
     133                    else: 
     134                        self.painter.rectangle([(int(matrixAreaStart+i*cellWidth), yPos), (int(matrixAreaStart+(i+1)*cellWidth), yPos+hAdvance)], fill=colorSheme(ex[attr])) 
    127135                else: 
    128136                    pass #TODO indicate a missing value 
     
    131139            label = labels[i] 
    132140            row = self.data[i] 
    133             self.painter.text((textAreaStart, topMargin+i*hAdvance), " "+label, fill=self.defaultTextColor) 
     141            self.painter.text((textAreaStart, topMargin+i*hAdvance), label, fill=self.defaultTextColor) 
    134142            _drawMatrixRow(row, topMargin+i*hAdvance) 
    135143 
     
    139147if __name__=="__main__": 
    140148    data = orange.ExampleTable("e://repo//orange//doc//datasets//brown-selected.tab") 
     149##    data = orange.ExampleTable("e://repo//orange//doc//datasets//iris.tab") 
    141150##    m = [[], [ 3], [ 2, 4], [17, 5, 4], [ 2, 8, 3, 8], [ 7, 5, 10, 11, 2], [ 8, 4, 1, 5, 11, 13], [ 4, 7, 12, 8, 10, 1, 5], [13, 9, 14, 15, 7, 8, 4, 6], [12, 10, 11, 15, 2, 5, 7, 3, 1]] 
    142151##    matrix = orange.SymMatrix(m) 
     
    148157            matrix[i, j] = dist(data[i], data[j]) 
    149158    root = orange.HierarchicalClustering(matrix, linkage=orange.HierarchicalClustering.Average) 
    150     d = DendrogramPlot(root, data=data, width=500, treeColors={root.left:(0,255,0), root.right:(0,0,255)}) 
     159    d = DendrogramPlot(root, data=data, treeColors={root.left:(0,255,0), root.right:(0,0,255)} , width=500) 
     160    d.SetMatrixColorScheme((0, 255, 0), (255, 0, 0)) 
    151161    d.Plot() 
    152162     
Note: See TracChangeset for help on using the changeset viewer.