diff --git a/bin/feedgnuplot b/bin/feedgnuplot index d77d84f..636bc19 100755 --- a/bin/feedgnuplot +++ b/bin/feedgnuplot @@ -867,7 +867,19 @@ sub updateCurveOptions my $usingoptions = ''; if( $options{timefmt} ) { - $usingoptions = "using 1:" . ($options{timefmt_Ncols}+1); + # with --timefmt I need an explicit 'using' specification. I specify the + # columns as 1:2:3..... I need the right number of columns (this is given + # as 1 + rangesize). I also need to start the range at the first column + # past the timefmt + + # I'd like to use //, but I guess some people are still on perl 5.8 + my $rangesize = exists $options{rangesize_hash}{$id} ? + $options{rangesize_hash}{$id} : + $options{rangesize_default}; + + my @rest = map {$_ + $options{timefmt_Ncols}} (1..$rangesize); + + $usingoptions = "using 1:" . join(':', @rest); } $curve->{options} = "$histoptions $usingoptions $titleoption $curve->{extraoptions} $curvestyleall"; diff --git a/t/plots.t b/t/plots.t index 821d9e5..43ef00f 100644 --- a/t/plots.t +++ b/t/plots.t @@ -39,7 +39,7 @@ BEGIN { } } -use Test::More tests => 56; +use Test::More tests => 58; use File::Temp 'tempfile'; use IPC::Run 'run'; use String::ShellQuote; @@ -801,6 +801,53 @@ tryplot( testname => '--timefmt plot with --monotonic', EOF +tryplot( testname => '--timefmt with custom rangesize', + cmd => q{seq 5 | gawk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1,$1/10}'}, + options => ['--domain', '--timefmt', '%d %b %Y %H:%M:%S', + qw(--with errorbars --rangesizeall 2)], + refplot => <<'EOF' ); + + + 5.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------** + + + + + + + + + * + | * + 5 ++ +A + | * + | * + | * + 4.5 ++ ** + | *** | + | * | + 4 ++ A ++ + | * | + | * | + | *** | + 3.5 ++ ++ + | *** | + | * | + 3 ++ A ++ + | * | + | * | + | *** | + 2.5 ++ ++ + | | + | *** | + 2 ++ A ++ + | * | + | *** | + | | + 1.5 ++ ++ + | | + | | + 1 A* ++ + ** | + | | + + + + + + + + + + + 0.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------++ + 05:08 05:08 05:09 05:09 05:10 05:10 05:11 05:11 05:12 + +EOF + tryplot( testname => 'Error bars (using extraValuesPerPoint)', cmd => q{seq 5 | gawk '{print $1,$1,$1/10}'}, options => [qw(--domain),