Compare commits

...

7 Commits
v1.60 ... v1.62

Author SHA1 Message Date
Dima Kogan
96ac271cda I explicitly ignore all lines that have '-' values
These may come from vnl-filter -p "dx=diff(x)" ... output. For instance, this
plot is broken before this patch:

  (echo '# x'; seq 5) | vnl-filter --noskipempty -p 'd=diff(x)' \
  | feedgnuplot --lines
2024-01-27 17:01:40 -08:00
Dima Kogan
db4fdcb933 changelog bump 2022-03-04 14:45:49 -08:00
Dima Kogan
fce128aa14 Plotting with no STDIN data works
This command now works:

  echo "" | ./bin/feedgnuplot --equation 'x' --image /tmp/1.jpg

Prior to the patch, there's a trailing , in the command
2022-03-04 14:40:13 -08:00
Dima Kogan
8c0f3df285 Added --cbmin, --cbmax
These are used unless --colormap. Added more docs to describe what --colormap
does. It is legacy.
2022-03-02 19:38:44 -08:00
Dima Kogan
c99b377083 --zmin,--zmax,--zlabel are sent if requested
I don't try to figure out if they make sense or not: gnuplot can do that
2022-03-02 19:32:19 -08:00
Dima Kogan
ed99cd89d1 Added --cblabel to label the color bar 2022-03-02 19:28:53 -08:00
Dima Kogan
4817a53d21 #! line uses /usr/bin/env to work with nonstandard installations 2021-08-28 13:33:30 -07:00
4 changed files with 60 additions and 21 deletions

21
Changes
View File

@@ -1,3 +1,24 @@
feedgnuplot (1.62)
* I explicitly ignore all lines that have '-' values
These may come from vnl-filter -p "dx=diff(x)" ... output. For instance, this
plot is broken before this patch:
(echo '# x'; seq 5) | vnl-filter --noskipempty -p 'd=diff(x)' \
| feedgnuplot --lines
-- Dima Kogan <dkogan@debian.org> Sat, 27 Jan 2024 17:01:18 -0800
feedgnuplot (1.61)
* #! line uses /usr/bin/env to work with nonstandard installations
* Added --cblabel to label the color bar
* Added --cbmin, --cbmax
* --zmin,--zmax,--zlabel are always sent, if requested
* Plotting with no STDIN data works
-- Dima Kogan <dkogan@debian.org> Fri, 04 Mar 2022 14:45:36 -0800
feedgnuplot (1.60) feedgnuplot (1.60)
* Test suite fix: we have the right number of tests * Test suite fix: we have the right number of tests

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl #!/usr/bin/env perl
package feedgnuplot; # for the metacpan indexer package feedgnuplot; # for the metacpan indexer
@@ -16,7 +16,7 @@ use Pod::Usage;
use Time::Piece; use Time::Piece;
# Makefile.PL assumes this is in '' # Makefile.PL assumes this is in ''
my $VERSION = '1.60'; my $VERSION = '1.62';
my %options; my %options;
interpretCommandline(); interpretCommandline();
@@ -115,11 +115,12 @@ sub interpretCommandline
'3d!', 'colormap!', 'lines!', 'points!', 'circles', '3d!', 'colormap!', 'lines!', 'points!', 'circles',
'legend=s{2}', 'autolegend!', 'legend=s{2}', 'autolegend!',
'xlabel=s', 'x2label=s', 'ylabel=s', 'y2label=s', 'zlabel=s', 'xlabel=s', 'x2label=s', 'ylabel=s', 'y2label=s', 'zlabel=s', 'cblabel=s',
'title=s', 'xlen=f', 'title=s', 'xlen=f',
'xmin=s', 'xmax=s', 'x2min=s', 'x2max=s', 'xmin=s', 'xmax=s', 'x2min=s', 'x2max=s',
'ymin=f', 'ymax=f', 'y2min=f', 'y2max=f', 'ymin=f', 'ymax=f', 'y2min=f', 'y2max=f',
'zmin=f', 'zmax=f', 'zmin=f', 'zmax=f',
'cbmin=f', 'cbmax=f',
'x2=s@', 'y2=s@', 'x1y2=s@', 'x2y1=s@', 'x2y2=s@', 'x2=s@', 'y2=s@', 'x1y2=s@', 'x2y1=s@', 'x2y2=s@',
'style=s{2}', 'curvestyle=s{2}', 'curvestyleall=s', 'styleall=s', 'with=s', 'style=s{2}', 'curvestyle=s{2}', 'curvestyleall=s', 'styleall=s', 'with=s',
'extracmds=s@', 'cmds=s@', 'extracmds=s@', 'cmds=s@',
@@ -422,15 +423,6 @@ sub interpretCommandline
exit -1; exit -1;
} }
if(!$options{colormap})
{
if ( defined $options{zmin} || defined $options{zmax} || defined $options{zlabel} )
{
print STDERR "--zmin/zmax/zlabel only makes sense with --3d or --colormap\n";
exit -1;
}
}
if ( defined $options{square_xy} ) if ( defined $options{square_xy} )
{ {
print STDERR "--square_xy only makes sense with --3d\n"; print STDERR "--square_xy only makes sense with --3d\n";
@@ -788,6 +780,12 @@ sub mainThread
$options{curvestyleall} = "with circles $options{curvestyleall}"; $options{curvestyleall} = "with circles $options{curvestyleall}";
} }
# Required to ignore all lines that have '-' values, such as may come from
# vnl-filter -p "dx=diff(x)" ... output. For instance, this plot is broken
# without this extra line:
# (echo '# x'; seq 5) | vnl-filter --noskipempty -p 'd=diff(x)' | ./feedgnuplot --lines
print PIPE "set datafile missing \"-\"\n";
print PIPE "set style data $style\n" if $style; print PIPE "set style data $style\n" if $style;
print PIPE "set grid\n"; print PIPE "set grid\n";
@@ -796,6 +794,7 @@ sub mainThread
print(PIPE "set ylabel \"$options{ylabel }\"\n") if defined $options{ylabel}; print(PIPE "set ylabel \"$options{ylabel }\"\n") if defined $options{ylabel};
print(PIPE "set y2label \"$options{y2label}\"\n") if defined $options{y2label}; print(PIPE "set y2label \"$options{y2label}\"\n") if defined $options{y2label};
print(PIPE "set zlabel \"$options{zlabel }\"\n") if defined $options{zlabel}; print(PIPE "set zlabel \"$options{zlabel }\"\n") if defined $options{zlabel};
print(PIPE "set cblabel \"$options{cblabel}\"\n") if defined $options{cblabel};
print(PIPE "set title \"$options{title }\"\n") if defined $options{title}; print(PIPE "set title \"$options{title }\"\n") if defined $options{title};
if($options{square}) if($options{square})
@@ -888,7 +887,15 @@ sub mainThread
sendRangeCommand( "xrange", $options{xmin}, $options{xmax} ); sendRangeCommand( "xrange", $options{xmin}, $options{xmax} );
sendRangeCommand( "yrange", $options{ymin}, $options{ymax} ); sendRangeCommand( "yrange", $options{ymin}, $options{ymax} );
sendRangeCommand( "zrange", $options{zmin}, $options{zmax} ); sendRangeCommand( "zrange", $options{zmin}, $options{zmax} );
sendRangeCommand( "cbrange", $options{zmin}, $options{zmax} ) if($options{colormap}); if($options{colormap})
{
# legacy behavior. Nobody should really be using --colormap
sendRangeCommand( "cbrange", $options{zmin}, $options{zmax} );
}
else
{
sendRangeCommand( "cbrange", $options{cbmin},$options{cbmax});
}
# add the extra global options # add the extra global options
print(PIPE "$_\n") foreach (@{$options{extracmds}}); print(PIPE "$_\n") foreach (@{$options{extracmds}});
@@ -1176,9 +1183,10 @@ sub plotStoredData
my @nonemptyCurves = grep { $_->{datastring} } @curves; my @nonemptyCurves = grep { $_->{datastring} } @curves;
my @extraopts = map {$_->{options}} @nonemptyCurves; my @extraopts = map {$_->{options}} @nonemptyCurves;
my $body = join('', map { "$_," } @{$options{equation}}); my @components = (@{$options{equation}},
$body .= join(', ' , map({ "'-' $_" } @extraopts) ); map({ "'-' $_" } @extraopts),
$body .= join('', map { ",$_" } @{$options{'equation-above'}}); @{$options{'equation-above'}});
my $body = join(',', @components);
if($options{'3d'}) { print PIPE "splot $body\n"; } if($options{'3d'}) { print PIPE "splot $body\n"; }
else { print PIPE "plot $body\n"; } else { print PIPE "plot $body\n"; }
@@ -1924,9 +1932,16 @@ Interpret the X data as a time/date, parsed with the given format
C<--colormap> C<--colormap>
Show a colormapped xy plot. Requires extra data for the color. zmin/zmax can be This is a legacy option used to who a colormapped xy plot. It does:
used to set the extents of the colors. Automatically sets the
C<--rangesize>/C<--tuplesize>. - Adds C<palette> to C<--curvestyleall>
- Adds 1 to the default C<--tuplesize> (if C<--tuplesizeall> is not given
- Uses C<--zmin>, C<--zmax> to set the colorbar range
It's clearer to set the relevant options explicitly, but C<--colormap> still
exists for compatibility
=item =item
@@ -2003,10 +2018,11 @@ instance C<--set 'xrange [20:10]'> to set the given inverted bounds.
=item =item
C<--xlabel/x2label/ylabel/y2label/zlabel xxx> C<--xlabel/x2label/ylabel/y2label/zlabel/cblabel xxx>
Label the given axis. The x2/y2-axis labels do not apply to 3d plots while the Label the given axis. The x2/y2-axis labels do not apply to 3d plots while the
z-axis label applies I<only> to 3d plots. z-axis label applies I<only> to 3d plots. The "cblabel" applies to the colorbar,
if there is one.
=item =item

View File

@@ -66,6 +66,7 @@ complete -W \
--zlabel \ --zlabel \
--zmax \ --zmax \
--zmin \ --zmin \
--cblabel \
--xticlabels \ --xticlabels \
--using \ --using \
--usingall \ --usingall \

View File

@@ -14,6 +14,7 @@ _arguments -S
'--ylabel:Y-axis label:' \ '--ylabel:Y-axis label:' \
'--y2label:Y2-axis label:' \ '--y2label:Y2-axis label:' \
'--zlabel:Z-axis label:' \ '--zlabel:Z-axis label:' \
'--cblabel:Colorbar label:' \
'--title:Plot title:' \ '--title:Plot title:' \
'--autolegend[Label each plot with its data ID]' \ '--autolegend[Label each plot with its data ID]' \
'(--3d)--xlen[the size of the x-window to plot]:window size:' \ '(--3d)--xlen[the size of the x-window to plot]:window size:' \