Re: Need to extend NormalDateXValueAxis to be with hour, minute and second
Robin Becker <[email protected]>
| Newsgroups | gmane.comp.python.reportlab.user |
|---|---|
| Message-ID | <[email protected]> |
On 09/05/2016 12:30, Fatih Karatana wrote: > Hi, > > In the current version, we have only date value on > NormalDateXValueAxis like "yyyy-mm-dd", but what I need to extend this display > by including hour, minutes and seconds too. > > It will certainly help on my project to arrange the LinePlot graph > values by hourly period. > > Any help and advice will be appreciated. .. I started on this and got so far as class TimeValueAxis(ValueAxis): _mc = 60 _hc = 60*_mc _dc = 24*_hc def __init__(self,*args,**kwds): ValueAxis.__init__(self,*args,**kwds) if not self.labelTextFormat: self.labelTextFormat = self.timeLabelTextFormatter def _calcValueStep(self): '''Calculate _valueStep for the axis or get from valueStep.''' if self.valueStep is None: rawRange = self._valueMax - self._valueMin rawInterval = rawRange / min(float(self.maximumTicks-1),(float(self._length)/self.minimumTickSpacing)) #here's where we try to choose the correct value for the unit if rawInterval >= self._dc: d = self._dc self._unit = 'days' elif rawInterval >= self._hc: d = self._hc self._unit = 'hours' elif rawInterval >= self._mc: d = self._mc self._unit = 'minutes' else: d = 1 self._unitd = d if d>1: rawInterval = int(rawInterval/d) self._valueStep = nextRoundNumber(rawInterval) * d else: self._valueStep = self.valueStep def timeLabelTextFormatter(self,val): pass class XTimeValueAxis(_XTicks,TimeValueAxis,XValueAxis): pass the intent is just to map seconds into a suitable interval definition. The labelling is the hard part which I have not even thought about. In addition if sub ticks are wanted we need to specify hou they should be defined etc etc. -- Robin Becker