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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.