Compare commits

..

4 Commits

Author SHA1 Message Date
Dima Kogan
373b97092e version bump 2020-01-08 18:55:52 -08:00
Dima Kogan
e4523f97e7 documentation 2019-12-16 20:37:36 -08:00
Dima Kogan
d73118087a Full support for all 4 2d axes
Before I'd default to x1y1, and I could use x1y2 if --y2. Now I can ask for
--x1y2 and --x2y1 and --x2y2
2019-11-13 13:50:07 -08:00
Dima Kogan
b8111af563 added forgotten options to the tab-completions 2019-09-11 14:57:40 -07:00
15 changed files with 86 additions and 326 deletions

View File

@@ -1,3 +1,9 @@
feedgnuplot (1.53)
* Full support for all 4 axes. Added --x2...
-- Dima Kogan <dkogan@debian.org> Wed, 08 Jan 2020 18:55:29 -0800
feedgnuplot (1.52)
* Added --squarexy and --square-xy as synonyms to --square_xy

View File

@@ -16,7 +16,7 @@ use Pod::Usage;
use Time::Piece;
# Makefile.PL assumes this is in ''
my $VERSION = '1.52';
my $VERSION = '1.53';
my %options;
interpretCommandline();
@@ -91,7 +91,9 @@ sub interpretCommandline
$options{curvestyle} = [];
$options{style} = [];
$options{histogram} = [];
$options{y2} = [];
$options{x1y2} = [];
$options{x2y1} = [];
$options{x2y2} = [];
$options{extracmds} = [];
$options{set} = [];
$options{unset} = [];
@@ -105,9 +107,12 @@ sub interpretCommandline
$options{tuplesize} = [];
GetOptions(\%options, 'stream:s', 'domain!', 'dataid!', 'vnlog!', '3d!', 'colormap!', 'lines!', 'points!',
'circles', 'legend=s{2}', 'autolegend!', 'xlabel=s', 'ylabel=s', 'y2label=s', 'zlabel=s',
'title=s', 'xlen=f', 'ymin=f', 'ymax=f', 'xmin=s', 'xmax=s', 'y2min=f', 'y2max=f',
'zmin=f', 'zmax=f', 'y2=s@',
'circles', 'legend=s{2}', 'autolegend!', 'xlabel=s', 'x2label=s', 'ylabel=s', 'y2label=s', 'zlabel=s',
'title=s', 'xlen=f',
'xmin=s', 'xmax=s', 'x2min=s', 'x2max=s',
'ymin=f', 'ymax=f', 'y2min=f', 'y2max=f',
'zmin=f', 'zmax=f',
'x2=s@', 'y2=s@', 'x1y2=s@', 'x2y1=s@', 'x2y2=s@',
'style=s{2}', 'curvestyle=s{2}', 'curvestyleall=s', 'styleall=s', 'with=s', 'extracmds=s@', 'set=s@', 'unset=s@',
'square!', 'square_xy!', 'square-xy!', 'squarexy!', 'hardcopy=s', 'maxcurves=i', 'monotonic!', 'timefmt=s',
'equation=s@',
@@ -168,7 +173,7 @@ sub interpretCommandline
}
# expand options that are given as comma-separated lists
for my $listkey (qw(histogram y2))
for my $listkey (qw(histogram x2 y2 x1y2 x2y1 x2y2))
{
@{$options{$listkey}} = map split('\s*,\s*', $_), @{$options{$listkey}}
if defined $options{$listkey};
@@ -192,6 +197,11 @@ sub interpretCommandline
@{$options{$listkey}} = @out;
}
# handle x2 == x2y1 and y2 == x1y2
push @{$options{x2y1}}, @{$options{x2}} if defined $options{x2};
push @{$options{x1y2}}, @{$options{y2}} if defined $options{y2};
$options{x2} = [];
$options{y2} = [];
# convert all tuplesize business to rangesize
my $domainsize = $options{'3d'} ? 2 : 1;
@@ -351,9 +361,11 @@ sub interpretCommandline
exit -1;
}
if ( defined $options{y2min} || defined $options{y2max} || @{$options{y2}} )
if ( defined $options{x2min} || defined $options{x2max} ||
defined $options{y2min} || defined $options{y2max} ||
@{$options{x1y2}} || @{$options{x2y1}} || @{$options{x2y2}} )
{
print STDERR "--3d does not make sense with --y2...\n";
print STDERR "--3d does not make sense with --x2... or --y2...\n";
exit -1;
}
@@ -749,9 +761,10 @@ sub mainThread
print PIPE "set grid\n";
print(PIPE "set xlabel \"$options{xlabel }\"\n") if defined $options{xlabel};
print(PIPE "set x2label \"$options{x2label}\"\n") if defined $options{x2label};
print(PIPE "set ylabel \"$options{ylabel }\"\n") if defined $options{ylabel};
print(PIPE "set zlabel \"$options{zlabel }\"\n") if defined $options{zlabel};
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 title \"$options{title }\"\n") if defined $options{title};
if($options{square})
@@ -800,8 +813,9 @@ sub mainThread
}
}
# For the values requested to be printed on the y2 axis, set that
addCurveOption($_, 'axes x1y2') foreach (@{$options{y2}});
addCurveOption($_, 'axes x1y2') foreach (@{$options{x1y2}});
addCurveOption($_, 'axes x2y1') foreach (@{$options{x2y1}});
addCurveOption($_, 'axes x2y2') foreach (@{$options{x2y2}});
# timefmt
if( $options{timefmt} )
@@ -818,7 +832,14 @@ sub mainThread
setCurveAsHistogram( $_ ) foreach (@{$options{histogram}});
if(@{$options{y2}})
if(@{$options{x2y1}} || @{$options{x2y2}})
{
print PIPE "set xtics nomirror\n";
print PIPE "set x2tics\n";
# if any of the ranges are given, set the range
sendRangeCommand( "x2range", $options{x2min}, $options{x2max} );
}
if(@{$options{x1y2}} || @{$options{x2y2}})
{
print PIPE "set ytics nomirror\n";
print PIPE "set y2tics\n";
@@ -1369,6 +1390,7 @@ Simple plotting of piped data:
2 +-----------------------------------------------------------------+ 0
1 1.5 2 2.5 3 3.5 4 4.5 5
Here we asked for ASCII plotting, which is useful for documentation.
Simple real-time plotting example: plot how much data is received on the wlan0
network interface in bytes/second (uses bash, awk and Linux):
@@ -1831,10 +1853,10 @@ plot I<only> histograms or I<only> I<non>-histograms.
=item
C<--xmin/xmax/ymin/ymax/y2min/y2max/zmin/zmax xxx>
C<--xmin/xmax/x2min/x2max/ymin/ymax/y2min/y2max/zmin/zmax xxx>
Set the range for the given axis. These x-axis bounds are ignored in a streaming
plot. The y2-axis bound do not apply in 3d plots. The z-axis bounds apply
plot. The x2/y2-axis bounds do not apply in 3d plots. The z-axis bounds apply
I<only> to 3d plots or colormaps. Note that there is no C<--xrange> to set both
sides at once or C<--xinv> to flip the axis around: anything more than the
basics supported in this option is clearly obtainable by talking to gnuplot, for
@@ -1842,23 +1864,29 @@ instance C<--set 'xrange [20:10]'> to set the given inverted bounds.
=item
C<--xlabel/ylabel/y2label/zlabel xxx>
C<--xlabel/x2label/ylabel/y2label/zlabel xxx>
Label the given axis. The y2-axis label does 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.
=item
C<--y2 xxx>
C<--x2/--y2/--x1y2/--x2y1/--x2y2 xxx>
Plot the data specified by this curve ID on the y2 axis. Without C<--dataid>,
the ID is just an ordered 0-based index. Does not apply to 3d plots. Can be
passed multiple times, or passed a comma-separated list. By default the y2-axis
curves look the same as the y-axis ones. I.e. the viewer of the resulting plot
has to be told which is which via an axes label, legend, etc. Prior to version
1.25 of feedgnuplot the curves plotted on the y2 axis were drawn with a thicker
line. This is no longer the case, but that behavior can be brought back by
passing something like
By default data is plotted against the x1 and y1 axes (the left and bottom one
respectively). If we want a particular curve plotted against a different axis,
we can specify that with these options. You pass C<--AXIS ID> where C<AXIS>
defines the axis (C<x2> or C<y2> or C<x1y2> or C<x2y1> or C<x2y2>) and the C<ID>
is the curve ID. C<--x2> is a synonym for C<--x2y1> and C<--y2> is a synonym for
C<--x1y2>. The curve ID is an ordered 0-based index or a specific ID if
C<--dataid> or C<--vnlog>. None of these apply to 3d plots. Can be passed
multiple times for different curve IDs, multiple IDs can be passed in as a
comma-separated list. By default the curves plotted against the various axes
aren not drawn in any differentiated way: the viewer of the resulting plot has
to be told which is which via an axes label, legend, colors, etc. Prior to
version 1.25 of C<feedgnuplot> the curves plotted on the y2 axis were drawn with
a thicker line. This is no longer the case, but that behavior can be brought
back by passing something like
--y2 curveid --style curveid 'linewidth 3'

View File

@@ -17,6 +17,8 @@ complete -W \
--extraValuesPerPoint \
--rangesizeall \
--rangesize \
--tuplesizeall \
--tuplesize \
--extracmds \
--set \
--unset \
@@ -39,17 +41,25 @@ complete -W \
--timefmt \
--title \
--version \
--x2 \
--y2 \
--x2y1 \
--x1y2 \
--x2y2 \
--xlabel \
--xlen \
--xmax \
--xmin \
--y2 \
--y2label \
--y2max \
--y2min \
--x2label \
--x2max \
--x2min \
--ylabel \
--ymax \
--ymin \
--y2label \
--y2max \
--y2min \
--zlabel \
--zmax \
--zmin' feedgnuplot
--zmin \
--vnlog ' feedgnuplot

View File

@@ -10,22 +10,28 @@ _arguments -S
'--points' \
'--circles' \
'--xlabel:X-axis label:' \
'--x2label:X2-axis label:' \
'--ylabel:Y-axis label:' \
'--y2label:Y2-axis label:' \
'--zlabel:Z-axis label:' \
'--zlabel:Z-axis label:' \
'--title:Plot title:' \
'--autolegend[Label each plot with its data ID]' \
'(--3d)--xlen[the size of the x-window to plot]:window size:' \
'(--xlen)--xmin:min X:' \
'(--xlen)--xmax:max X:' \
'--x2min:min X2:' \
'--x2max:max X2:' \
'--ymin:min Y:' \
'--ymax:max Y:' \
'--y2min:min Y2:' \
'--y2max:max Y2:' \
'--zmin:min Z:' \
'--zmax:max Z:' \
'*--y2:plot to place on the Y2 axis:' \
'*--x2:curve to place on the X2Y1 axis:' \
'*--y2:curve to place on the X1Y2 axis:' \
'*--x2y1:curve to place on the X2Y1 axis:' \
'*--x1y2:curve to place on the X1Y2 axis:' \
'*--x2y2:curve to place on the X2Y2 axis:' \
'(--with)--curvestyleall[Additional styles for ALL curves]:style' \
'(--with)--styleall[Additional styles for ALL curves]:style' \
'(--curvestyleall)--with[Additional styles for ALL curves]:style' \
@@ -42,6 +48,8 @@ _arguments -S
'(--rangesizeall)--extraValuesPerPoint[How many extra values are given for each data range]:N'\
'(--extraValuesPerPoint)--rangesizeall[How many values are given for each data range]:N'\
'*--rangesize[How many values comprise a data range in this curve]:curve id: :N:' \
'(--extraValuesPerPoint)--tuplesizeall[How many values are given for each data tuple]:N'\
'*--tuplesize[How many values comprise a data tuple in this curve]:curve id: :N:' \
'--dump[Instead of printing to gnuplot, print to STDOUT]' \
'--geometry[The X11 geometry string]:geometry string:' \
'*--curvestyle[Additional styles for a curve]:curve id: :style:' \
@@ -54,4 +62,5 @@ _arguments -S
'--exit[Exit gnuplot after making the plot]' \
'--version' \
'--help' \
'--timefmt[Format for time/date data]:time format'
'--timefmt[Format for time/date data]:time format' \
'--vnlog[column IDs come from a vnlog header]'

213
debian/changelog vendored
View File

@@ -1,213 +0,0 @@
feedgnuplot (1.52-1) unstable; urgency=medium
[ Jelmer Vernooij ]
* Use secure copyright file specification URI.
* Trim trailing whitespace.
[ Dima Kogan ]
* New upstream release
- --square-xy and --squarexy as synonyms for --square_xy
-- Dima Kogan <dkogan@debian.org> Sun, 25 Aug 2019 15:34:56 -0700
feedgnuplot (1.51-1) unstable; urgency=medium
* Added .gp "terminal" to create self-plotting gnuplot files
-- Dima Kogan <dkogan@debian.org> Sat, 29 Sep 2018 11:00:40 -0700
feedgnuplot (1.50-1) unstable; urgency=medium
* Script waits for the plot window to close before exiting
Instead of sleeping forever. This is really nice! I no longer need
to quit the plot window AND then C-c. Quitting the plot window is
now sufficient
* by default --image sets range noextend
* tab-completion knows about the fnormal distribution
-- Dima Kogan <dkogan@debian.org> Fri, 24 Aug 2018 13:16:35 -0700
feedgnuplot (1.49-2) unstable; urgency=medium
* Updated Vcs-... tags to salsa
-- Dima Kogan <dkogan@debian.org> Sun, 17 Jun 2018 22:18:18 -0700
feedgnuplot (1.49-1) unstable; urgency=medium
* --vnl now works with plots that have rangesize > 1
* zsh completion: --xlen argument isn't optional
-- Dima Kogan <dkogan@debian.org> Fri, 16 Mar 2018 13:56:27 -0700
feedgnuplot (1.48-1) unstable; urgency=medium
* Added --tuplesize and --tuplesizeall
* vnlog integration
-- Dima Kogan <dkogan@debian.org> Sat, 24 Feb 2018 12:56:05 -0800
feedgnuplot (1.45-1) unstable; urgency=medium
* zsh completion: --hardcopy, --image suggest filenames
* --image now produces a nicer legend: just the filename
* --curvestyle now overrides --curvestyleall
- This is a bug fix
* The version is now treated as a string not as a number
- So "1.40" is distinct from "1.4"
-- Dima Kogan <dkogan@debian.org> Sun, 29 Oct 2017 14:06:26 -0700
feedgnuplot (1.44-1) unstable; urgency=medium
* --image always goes on the FRONT of the equation list
-- Dima Kogan <dkogan@debian.org> Tue, 20 Jun 2017 16:45:42 -0700
feedgnuplot (1.43-1) unstable; urgency=medium
* added --image as a convenience wrapper for --equation
-- Dima Kogan <dkogan@debian.org> Mon, 19 Jun 2017 13:16:18 -0700
feedgnuplot (1.42-1) unstable; urgency=medium
* Upstream update:
- Fixed regression: data can now come from STDIN or files on the
cmdline
- reworded manpage of --exit
-- Dima Kogan <dkogan@debian.org> Tue, 25 Apr 2017 11:02:18 -0700
feedgnuplot (1.41-1) unstable; urgency=medium
* Upstream update:
- Histograms: --xlen can coexist with --xmin/--xmax
- Histograms: work as expected with --xlen and --monotonic
- Histograms: better sanity checking of options
-- Dima Kogan <dkogan@debian.org> Fri, 24 Feb 2017 23:53:27 -0800
feedgnuplot (1.40-1) unstable; urgency=medium
* Upstream update:
- If the options couldn't be parsed I don't dump the whole manpage
- --style and --rangesize can now take a comma-separated list of IDs
- 'any' is from List::MoreUtils, not List::Util
- the sleep-forever delay at end is now > 1000 days
-- Dima Kogan <dkogan@debian.org> Fri, 25 Nov 2016 14:49:36 -0800
feedgnuplot (1.39-1) unstable; urgency=medium
* Upstream update:
- by default, histograms are plotted in expected ways
- No enhanced text mode in hardcopies, slightly larger font size
-- Dima Kogan <dkogan@debian.org> Sat, 15 Oct 2016 20:45:15 -0700
feedgnuplot (1.37-1) unstable; urgency=medium
* Upstream update: At the end of a streaming plot, include the last
chunk of data
-- Dima Kogan <dima@secretsauce.net> Fri, 01 Jan 2016 08:14:23 -0800
feedgnuplot (1.36-1) unstable; urgency=medium
* Upstream update: added --equation to plot symbolic equations
-- Dima Kogan <dima@secretsauce.net> Fri, 13 Nov 2015 11:14:30 -0800
feedgnuplot (1.35-1) unstable; urgency=medium
* Upstream update: fancier handling of termination conditions, no more
threading code
-- Dima Kogan <dima@secretsauce.net> Mon, 02 Nov 2015 13:55:32 -0800
feedgnuplot (1.34-2) unstable; urgency=medium
* Depends now works with the 'gnuplot5' packages
-- Dima Kogan <dima@secretsauce.net> Fri, 10 Oct 2014 14:05:17 -0700
feedgnuplot (1.34-1) unstable; urgency=medium
* Very minor upstream update
* gnuplot-nox can no satisfy the gnuplot dependency for feedgnuplot
-- Dima Kogan <dima@secretsauce.net> Wed, 06 Aug 2014 15:19:56 -0700
feedgnuplot (1.33-1) unstable; urgency=low
* Upstream update: fixed incorrect plotting of --timefmt --rangesize
plots
-- Dima Kogan <dima@secretsauce.net> Thu, 06 Feb 2014 23:19:02 -0800
feedgnuplot (1.32-1) unstable; urgency=low
* Added --rangesize and --rangesizeall. Different curves can now plot
different-size tuples
-- Dima Kogan <dima@secretsauce.net> Wed, 05 Feb 2014 14:00:44 -0800
feedgnuplot (1.30-1) unstable; urgency=low
* made the VCS links canonical
* added --set, --unset, --with, --style, --styleall
-- Dima Kogan <dima@secretsauce.net> Fri, 24 Jan 2014 15:50:03 -0800
feedgnuplot (1.28-1) unstable; urgency=low
* Upstream update:
- Removed example debianization
- Removed unreliable unit tests from automated testing (Closes: #731080)
* gnuplot dependency now favors graphical gnuplot packages
* Removed Anton Gladky from the Uploaders
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 02:05:08 -0800
feedgnuplot (1.26-1) unstable; urgency=low
[ Dima Kogan ]
* Minor POD update
* Added test suite
* Added initial support for --timefmt. Currently time/date data is
supported only at the x-axis domain
* Added --exit option for force feedgnuplot to return even if gnuplot
may not yet be done rendering (patch by Eric Schulte)
* Reformatted the documentation
* y2-axis curves no longer have a thicker line by default
* --hardcopy now handles piped output (gnuplot 'set output |process'
syntax)
[ Anton Gladky ]
* Add libipc-run-perl to Build-Depends to execute tests
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Oct 2013 01:19:51 -0700
feedgnuplot (1.24-2) unstable; urgency=low
* Now building the html documentation from the correct POD source
-- Dima Kogan <dima@secretsauce.net> Sun, 28 Apr 2013 17:42:52 -0700
feedgnuplot (1.24-1) unstable; urgency=low
* Fixed regression in --monotonic. This works again now
* moved POD back into the main source file. This fixes the broken usage
messages
* added --version
* fixed watchfile to work with newer github pages
* priority now optional
-- Dima Kogan <dima@secretsauce.net> Fri, 08 Feb 2013 02:01:32 -0800
feedgnuplot (1.23-2) unstable; urgency=low
* Initial Debian release (Closes: #686413)
-- Dima Kogan <dima@secretsauce.net> Tue, 30 Oct 2012 11:14:01 -0700

1
debian/compat vendored
View File

@@ -1 +0,0 @@
9

22
debian/control vendored
View File

@@ -1,22 +0,0 @@
Source: feedgnuplot
Section: science
Priority: optional
Build-Depends: debhelper (>= 9), libstring-shellquote-perl, perl, gawk, gnuplot, libipc-run-perl
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Uploaders: Dima Kogan <dkogan@debian.org>
Standards-Version: 3.9.4
Homepage: https://github.com/dkogan/feedgnuplot
Vcs-Browser: https://salsa.debian.org/science-team/feedgnuplot
Vcs-Git: https://salsa.debian.org/science-team/feedgnuplot.git
Package: feedgnuplot
Architecture: all
Depends: ${misc:Depends}, ${perl:Depends},
liblist-moreutils-perl,
gnuplot-qt | gnuplot-x11 | gnuplot-nox | gnuplot5-qt | gnuplot5-x11 | gnuplot5-nox | gnuplot
Suggests: vnlog
Description: Pipe-oriented frontend to Gnuplot
Flexible, command-line-oriented frontend to Gnuplot. Creates plots from data
coming in on STDIN or given in a filename passed on the commandline. Various
data representations are supported, as is hardcopy output and streaming display
of live data.

24
debian/copyright vendored
View File

@@ -1,24 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/dkogan/feedgnuplot
Upstream-Contact: Dima Kogan, <dima@secretsauce.net>
Upstream-Name: feedgnuplot
Files: *
Copyright: 2011, Dima Kogan <dima@secretsauce.net>
License: Artistic or GPL-1+
License: Artistic
This program is free software; you can redistribute it and/or modify
it under the terms of the Artistic License, which comes with Perl.
.
On Debian GNU/Linux systems, the complete text of the Artistic License
can be found in `/usr/share/common-licenses/Artistic'.
License: GPL-1+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
.
On Debian GNU/Linux systems, the complete text of version 1 of the
General Public License can be found in `/usr/share/common-licenses/GPL-1'.

View File

@@ -1,9 +0,0 @@
Document: feedgnuplot
Title: Feedgnuplot Manual
Author: Dima Kogan
Abstract: Formatted manpage for feedgnuplot
Section: Science/Data Analysis
Format: HTML
Index: /usr/share/doc/feedgnuplot/feedgnuplot.html
Files: /usr/share/doc/feedgnuplot/feedgnuplot.html

View File

@@ -1 +0,0 @@
feedgnuplot.html

View File

@@ -1,2 +0,0 @@
completions/bash/feedgnuplot /usr/share/bash-completion/completions/
completions/zsh/_feedgnuplot /usr/share/zsh/vendor-completions

4
debian/gbp.conf vendored
View File

@@ -1,4 +0,0 @@
[DEFAULT]
debian-branch = debian
upstream-tag = v%(version)s
pristine-tar = True

12
debian/rules vendored
View File

@@ -1,12 +0,0 @@
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_build:
dh_auto_build
pod2html --title=feedgnuplot bin/feedgnuplot > feedgnuplot.html
override_dh_auto_clean:
rm -rf feedgnuplot.html pod2htm*
dh_auto_clean

View File

@@ -1 +0,0 @@
3.0 (quilt)

4
debian/watch vendored
View File

@@ -1,4 +0,0 @@
version=3
opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha|b|a)\d*)$/$1~$2/,dversionmangle=s/\+(debian|dfsg|ds|deb)\d*$// \
https://github.com/dkogan/feedgnuplot/tags .*/v?(\d.*)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz))
# Bart Martens <bartm@debian.org> Sat, 22 Dec 2012 12:54:18 +0000