Ignore:
Timestamp:
04/02/12 18:12:04 (2 years ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Fixed scatterplot (and linear projection) point jittering (now remains the same through subset data changes), fixes #1170.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeWidgets/Visualize/OWScatterPlotGraph.py

    r9671 r10705  
    228228            xPointsToAdd = {} 
    229229            yPointsToAdd = {} 
     230            subsetIdsAlreadyDrawn = set() 
    230231            for i in range(len(self.rawData)): 
    231232                if not validData[i]: continue 
    232233                if subsetIdsToDraw.has_key(self.rawData[i].id): 
    233                     continue 
     234                    instanceFilled = 1 
     235                    subsetIdsAlreadyDrawn.add(self.rawData[i].id) 
     236                else: 
     237                    instanceFilled = showFilled 
    234238 
    235239                if colorIndex != -1: 
     
    246250                if sizeIndex != -1: size = MIN_SHAPE_SIZE + round(self.noJitteringScaledData[sizeIndex][i] * self.pointWidth) 
    247251 
    248                 if not xPointsToAdd.has_key((newColor, size, Symbol, showFilled)): 
    249                     xPointsToAdd[(newColor, size, Symbol, showFilled)] = [] 
    250                     yPointsToAdd[(newColor, size, Symbol, showFilled)] = [] 
    251                 xPointsToAdd[(newColor, size, Symbol, showFilled)].append(xData[i]) 
    252                 yPointsToAdd[(newColor, size, Symbol, showFilled)].append(yData[i]) 
     252                if not xPointsToAdd.has_key((newColor, size, Symbol, instanceFilled)): 
     253                    xPointsToAdd[(newColor, size, Symbol, instanceFilled)] = [] 
     254                    yPointsToAdd[(newColor, size, Symbol, instanceFilled)] = [] 
     255                xPointsToAdd[(newColor, size, Symbol, instanceFilled)].append(xData[i]) 
     256                yPointsToAdd[(newColor, size, Symbol, instanceFilled)].append(yData[i]) 
    253257                self.tips.addToolTip(xData[i], yData[i], i)     # we add a tooltip for this point 
    254258 
     
    268272                xData, yData = self.getXYSubsetDataPositions(xAttr, yAttr) 
    269273                for i in range(len(self.rawSubsetData)): 
    270                     if not validSubData[i]: continue 
     274                    if not validSubData[i]: 
     275                        continue 
     276                    if self.rawSubsetData[i].id in subsetIdsAlreadyDrawn: 
     277                        continue 
    271278 
    272279                    if colorIndex != -1 and self.validSubsetDataArray[colorIndex][i]: 
Note: See TracChangeset for help on using the changeset viewer.