Merge branch 'master' into debian

This commit is contained in:
Dima Kogan 2016-01-01 08:13:00 -08:00
commit 9a476c6429
4 changed files with 32 additions and 18 deletions

View File

@ -1,3 +1,10 @@
feedgnuplot (1.37)
* At the end of a streaming plot, include the last chunk of data
* Added --equation to the completions
-- Dima Kogan <dima@secretsauce.net> Fri, 01 Jan 2016 08:09:43 -0800
feedgnuplot (1.36) feedgnuplot (1.36)
* Added --equation to plot symbolic equations * Added --equation to plot symbolic equations

View File

@ -14,7 +14,7 @@ use Text::ParseWords; # for shellwords
use Pod::Usage; use Pod::Usage;
use Time::Piece; use Time::Piece;
my $VERSION = 1.36; my $VERSION = 1.37;
my %options; my %options;
interpretCommandline(); interpretCommandline();
@ -552,7 +552,7 @@ sub mainThread
print(PIPE "set view equal xy\n"); print(PIPE "set view equal xy\n");
} }
# For the specified values, set the legend entries to 'title "blah blah"' # For the specified values, set the legend entries to 'title "blah blah"'
if(@{$options{legend}}) if(@{$options{legend}})
{ {
# @{$options{legend}} is a list where consecutive pairs are (curveID, # @{$options{legend}} is a list where consecutive pairs are (curveID,
@ -567,7 +567,7 @@ sub mainThread
} }
} }
# add the extra curve options # add the extra curve options
if(@{$options{curvestyle}}) if(@{$options{curvestyle}})
{ {
# @{$options{curvestyle}} is a list where consecutive pairs are (curveID, # @{$options{curvestyle}} is a list where consecutive pairs are (curveID,
@ -582,22 +582,22 @@ sub mainThread
} }
} }
# For the values requested to be printed on the y2 axis, set that # For the values requested to be printed on the y2 axis, set that
addCurveOption($_, 'axes x1y2') foreach (@{$options{y2}}); addCurveOption($_, 'axes x1y2') foreach (@{$options{y2}});
# timefmt # timefmt
if( $options{timefmt} ) if( $options{timefmt} )
{ {
print(PIPE "set timefmt '$options{timefmt}'\n"); print(PIPE "set timefmt '$options{timefmt}'\n");
print(PIPE "set xdata time\n"); print(PIPE "set xdata time\n");
} }
# add the extra global options # add the extra global options
print(PIPE "$_\n") foreach (@{$options{extracmds}}); print(PIPE "$_\n") foreach (@{$options{extracmds}});
print(PIPE "set $_\n") foreach (@{$options{set}}); print(PIPE "set $_\n") foreach (@{$options{set}});
print(PIPE "unset $_\n") foreach (@{$options{unset}}); print(PIPE "unset $_\n") foreach (@{$options{unset}});
# set up histograms # set up histograms
$options{binwidth} ||= 1; # if no binwidth given, set it to 1 $options{binwidth} ||= 1; # if no binwidth given, set it to 1
print PIPE print PIPE
"set boxwidth $options{binwidth}\n" . "set boxwidth $options{binwidth}\n" .
@ -605,7 +605,7 @@ sub mainThread
setCurveAsHistogram( $_ ) foreach (@{$options{histogram}}); setCurveAsHistogram( $_ ) foreach (@{$options{histogram}});
# set all the axis ranges # set all the axis ranges
# If a bound isn't given I want to set it to the empty string, so I can communicate it simply to # If a bound isn't given I want to set it to the empty string, so I can communicate it simply to
# gnuplot # gnuplot
print PIPE "set xtics\n"; print PIPE "set xtics\n";
@ -749,7 +749,7 @@ sub mainThread
} }
# finished reading in all. Plot what we have # finished reading in all. Plot what we have
plotStoredData() unless $options{stream}; plotStoredData() unless $options{stream} && $options{exit};
if ( defined $options{hardcopy}) if ( defined $options{hardcopy})
{ {
@ -1541,12 +1541,17 @@ in the plot. Defaults to 1.0 if not given.
C<--histstyle style> C<--histstyle style>
Normally, histograms are generated with the 'smooth freq' gnuplot style. Normally, histograms are generated with the 'smooth frequency' gnuplot style.
C<--histstyle> can be used to select different 'smooth' settings. Allowed are C<--histstyle> can be used to select different C<smooth> settings (see the
'unique', 'cumulative' and 'cnormal'. 'unique' indicates whether a bin has at gnuplot C<help smooth> page for more info). Allowed values are 'frequency' (the
least one item in it: instead of counting the items, it'll always report 0 or 1. default), 'unique', 'cumulative' and 'cnormal'. 'unique' indicates whether a bin
'cumulative' is the integral of the "normal" histogram. 'cnormal' is like has at least one item in it: instead of counting the items, it'll always report
'cumulative', but rescaled to end up at 1.0. 0 or 1. 'cumulative' is the integral of the 'frequency' histogram. 'cnormal' is
like 'cumulative', but rescaled to end up at 1.0. Note that there's no
normalized 'frequency' option because gnuplot does not provide one.
C<help smooth>
=item =item
@ -1617,7 +1622,7 @@ times.
C<--equation xxx> C<--equation xxx>
Gnuplot can plot both data and symbolic equations. C<feedgnuplot> generally Gnuplot can plot both data and symbolic equations. C<feedgnuplot> generally
plots data, but with this option can plot symbolic equations /also/. This is plots data, but with this option can plot symbolic equations I<also>. This is
generally intended to augment data plots, since for equation-only plots you generally intended to augment data plots, since for equation-only plots you
don't need C<feedgnuplot>. C<--equation> can be passed multiple times for don't need C<feedgnuplot>. C<--equation> can be passed multiple times for
multiple equations. The given strings are passed to gnuplot directly without any multiple equations. The given strings are passed to gnuplot directly without any
@ -1629,7 +1634,7 @@ basic example:
--equation 'sin(x)/x' --equation 'cos(x)/x with lines lw 4' --equation 'sin(x)/x' --equation 'cos(x)/x with lines lw 4'
Here I plot the incoming data (points along a line) with the given style (a line Here I plot the incoming data (points along a line) with the given style (a line
with thickness 3), /and/ I plot two damped sinusoids on the same plot. The with thickness 3), I<and> I plot two damped sinusoids on the same plot. The
sinusoids are not affected by C<feedgnuplot> styling, so their styles are set sinusoids are not affected by C<feedgnuplot> styling, so their styles are set
separately, as in this example. More complicated example: separately, as in this example. More complicated example:
@ -1638,7 +1643,7 @@ separately, as in this example. More complicated example:
--set parametric --set "trange [0:2*3.14]" --equation "sin(t),cos(t)" --set parametric --set "trange [0:2*3.14]" --equation "sin(t),cos(t)"
Here the data I generate is points along the unit circle. I plot these as Here the data I generate is points along the unit circle. I plot these as
points, and I /also/ plot a true circle as a parametric equation. points, and I I<also> plot a true circle as a parametric equation.
=item =item

View File

@ -20,6 +20,7 @@ complete -W \
--extracmds \ --extracmds \
--set \ --set \
--unset \ --unset \
--equation \
--geometry \ --geometry \
--hardcopy \ --hardcopy \
--help \ --help \

View File

@ -32,6 +32,7 @@ _arguments -S
'*--extracmds[Additional gnuplot commands]:command' \ '*--extracmds[Additional gnuplot commands]:command' \
'*--set[Additional 'set' gnuplot commands]:set-option' \ '*--set[Additional 'set' gnuplot commands]:set-option' \
'*--unset[Additional 'unset' gnuplot commands]:unset-option' \ '*--unset[Additional 'unset' gnuplot commands]:unset-option' \
'*--equation[Raw symbolic equation]:equation' \
'--square[Plot data with square aspect ratio]' \ '--square[Plot data with square aspect ratio]' \
'--square_xy[For 3D plots, set square aspect ratio for ONLY the x,y axes]' \ '--square_xy[For 3D plots, set square aspect ratio for ONLY the x,y axes]' \
'--hardcopy[Plot to a file]:filename' \ '--hardcopy[Plot to a file]:filename' \