Changeset 172 for trunk/pycha/chart.py

Show
Ignore:
Timestamp:
03/21/09 04:49:44 (3 years ago)
Author:
lgs
Message:

Initial implementation of the interval option. Based on a patch by Nicolas. See #28

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pycha/chart.py

    r170 r172  
    227227                    self.xticks.append((pos, label)) 
    228228 
     229        elif self.options.axis.x.interval > 0: 
     230            interval = self.options.axis.x.interval 
     231            label = (divmod(self.minxval, interval)[0] + 1) * interval 
     232            pos = self.xscale * (label - self.minxval) 
     233            while 0.0 <= pos <= 1.0: 
     234                self.xticks.append((pos, label)) 
     235                label += interval 
     236                pos = self.xscale * (label - self.minxval) 
     237 
    229238        elif self.options.axis.x.tickCount > 0: 
    230239            uniqx = range(len(uniqueIndices(stores)) + 1) 
     
    252261                if 0.0 <= pos <= 1.0: 
    253262                    self.yticks.append((pos, label)) 
     263 
     264        elif self.options.axis.y.interval > 0: 
     265            interval = self.options.axis.y.interval 
     266            label = (divmod(self.minyval, interval)[0] + 1) * interval 
     267            pos = 1.0 - (self.yscale * (label - self.minyval)) 
     268            while 0.0 <= pos <= 1.0: 
     269                self.yticks.append((pos, label)) 
     270                label += interval 
     271                pos = 1.0 - (self.yscale * (label - self.minyval)) 
    254272 
    255273        elif self.options.axis.y.tickCount > 0: 
     
    628646            rotate=None, 
    629647            label=None, 
     648            interval=0, 
    630649        ), 
    631650        y=Option( 
     
    637656            rotate=None, 
    638657            label=None, 
     658            interval=0, 
    639659        ), 
    640660    ),