There's definitely no automatic way to do it. But it seems simple enough to write a little gap filler.
use Date::Manip; use POSIX; @data = ([20070410, 20070415, 20070417], [ 10, 20, 15 ]); for my $i (0 .. $#{$data[0]}-1) { my $lhs = &UnixDate(&ParseDate($data[0][$i]), '%s'); my $rhs = &UnixDate(&ParseDate($data[0][$i+1]), '%s'); my @gap = (); REDO: { if( $lhs < $rhs ) { $lhs += 86400; push @gap, strftime('%Y%m%d', $lhs); redo REDO; } } # I'm not 100% on these splices, be sure to use your brain # untested, etc etc splice @{$data[0]}, $i+1, 0, @gap; splice @{$data[1]}, $i+1, 0, map {0} @gap; }
UPDATE: Although I believe this would work correctly for the first gap, it definitely wouldn't for the next as the $#{$data[0]} would change dramatically after filling the first gap and the for loop would be unaware of it...
-Paul
In reply to Re: GD::graph time-scale option?
by jettero
in thread GD::graph time-scale option?
by GertMT
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |