mirror of
https://github.com/dkogan/feedgnuplot.git
synced 2025-09-18 10:28:12 +08:00
Compare commits
55 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4958bda912 | ||
![]() |
3860d8281b | ||
![]() |
4f9adb6e11 | ||
![]() |
167e85d2a7 | ||
![]() |
5123ca73d3 | ||
![]() |
d4ca90e1bd | ||
![]() |
9e669044c7 | ||
![]() |
cacbedb336 | ||
![]() |
18994e68e1 | ||
![]() |
f8ed461571 | ||
![]() |
f01431dd1e | ||
![]() |
80b6030996 | ||
![]() |
232b68b819 | ||
![]() |
12eb829f16 | ||
![]() |
80b5d0ab61 | ||
![]() |
960c43e758 | ||
![]() |
2ecdfb9aef | ||
![]() |
fa7082b242 | ||
![]() |
c61e58da0a | ||
![]() |
c19dc4aa2a | ||
![]() |
238a0c1943 | ||
![]() |
42a8218fbe | ||
![]() |
4cfcf0fc35 | ||
![]() |
0e7f51f3f7 | ||
![]() |
01971c2434 | ||
![]() |
104accdd0d | ||
![]() |
605158b391 | ||
![]() |
0c32afacfd | ||
![]() |
1688496f34 | ||
![]() |
498047e785 | ||
![]() |
72adba82f7 | ||
![]() |
539b2035d8 | ||
![]() |
9b3cbc13be | ||
![]() |
a65abc6095 | ||
![]() |
5db86810b5 | ||
![]() |
d75b572875 | ||
![]() |
6cb1574e2b | ||
![]() |
4fd1c390ff | ||
![]() |
4163e24956 | ||
![]() |
13268a1fa8 | ||
![]() |
08fa97fdb5 | ||
![]() |
e19bdf51c4 | ||
![]() |
a9af1925e2 | ||
![]() |
9387a85fe6 | ||
![]() |
f38a00bfd1 | ||
![]() |
c21c4d7e70 | ||
![]() |
35901fe6d1 | ||
![]() |
1e3d01edd2 | ||
![]() |
20e9adbae4 | ||
![]() |
2b2bba9ff3 | ||
![]() |
caea1285a9 | ||
![]() |
64bce2a425 | ||
![]() |
adbc8393f5 | ||
![]() |
235de3d5d1 | ||
![]() |
198122431f |
88
Changes
88
Changes
@@ -1,3 +1,91 @@
|
||||
feedgnuplot (1.39)
|
||||
|
||||
* by default, histograms are plotted in expected ways
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Sat, 15 Oct 2016 20:45:15 -0700
|
||||
|
||||
feedgnuplot (1.38)
|
||||
|
||||
* hardcopy defaults:
|
||||
- no enhanced text mode
|
||||
- larger font size
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Wed, 27 Jul 2016 22:15:11 -0700
|
||||
|
||||
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)
|
||||
|
||||
* Added --equation to plot symbolic equations
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Fri, 13 Nov 2015 11:08:26 -0800
|
||||
|
||||
feedgnuplot (1.35)
|
||||
|
||||
* replaced a 'say' with 'print'. Should work better with ancient perls
|
||||
* an "exit" command now has effect even with triggered-only replotting
|
||||
|
||||
* More sophisticated handling of termination conditions:
|
||||
- Without --exit, we always end up with an interactive plot when the
|
||||
input data is exhausted or when the user sends a ^C to the pipeline
|
||||
- When streaming, the first ^C does not kill feedgnuplot
|
||||
|
||||
* Removed threading
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Sun, 01 Nov 2015 12:50:33 -0800
|
||||
|
||||
feedgnuplot (1.34)
|
||||
|
||||
* Fix for "Use of implicit split to @_ is deprecated". Thanks to Corey
|
||||
Putkunz
|
||||
|
||||
* Declaring feedgnuplot as a package to let MetaCPAN index this
|
||||
distribution
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Wed, 14 May 2014 00:45:24 -0700
|
||||
|
||||
feedgnuplot (1.33)
|
||||
|
||||
* fixed incorrect plotting of --timefmt --rangesize plots
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Thu, 06 Feb 2014 23:17:21 -0800
|
||||
|
||||
feedgnuplot (1.32)
|
||||
|
||||
* Added --rangesize and --rangesizeall. Different curves can now plot
|
||||
different-size tuples
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Wed, 05 Feb 2014 13:57:58 -0800
|
||||
|
||||
feedgnuplot (1.31)
|
||||
|
||||
* Test suite requires gawk to get strftime()
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Sat, 25 Jan 2014 20:49:38 -0800
|
||||
|
||||
feedgnuplot (1.30)
|
||||
|
||||
* Added --with, --set, --unset, --style, --styleall
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Fri, 24 Jan 2014 15:38:07 -0800
|
||||
|
||||
feedgnuplot (1.29)
|
||||
|
||||
* added CPAN meta-data to require IPC::Run at build time
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 21:12:40 -0800
|
||||
|
||||
feedgnuplot (1.28)
|
||||
|
||||
* Minor POD update
|
||||
|
||||
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 02:01:05 -0800
|
||||
|
||||
feedgnuplot (1.27)
|
||||
|
||||
* Disabled tests that can fail on some arches (can be re-enabled with
|
||||
|
@@ -63,7 +63,8 @@ WriteMakefile
|
||||
: ()),
|
||||
PL_FILES => {},
|
||||
EXE_FILES => [ 'bin/feedgnuplot' ],
|
||||
BUILD_REQUIRES => { 'String::ShellQuote' => 0},
|
||||
BUILD_REQUIRES => { 'String::ShellQuote' => 0,
|
||||
'IPC::Run' => 0},
|
||||
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
|
||||
clean => { FILES => 'feedgnuplot-*' },
|
||||
);
|
||||
|
939
bin/feedgnuplot
939
bin/feedgnuplot
File diff suppressed because it is too large
Load Diff
@@ -7,12 +7,20 @@ complete -W \
|
||||
--colormap \
|
||||
--curvestyle \
|
||||
--curvestyleall \
|
||||
--style \
|
||||
--styleall \
|
||||
--with \
|
||||
--dataid \
|
||||
--domain \
|
||||
--dump \
|
||||
--exit \
|
||||
--extraValuesPerPoint \
|
||||
--rangesizeall \
|
||||
--rangesize \
|
||||
--extracmds \
|
||||
--set \
|
||||
--unset \
|
||||
--equation \
|
||||
--geometry \
|
||||
--hardcopy \
|
||||
--help \
|
||||
|
@@ -26,17 +26,25 @@ _arguments -S
|
||||
'--zmin:min Z:' \
|
||||
'--zmax:max Z:' \
|
||||
'*--y2:plot to place on the Y2 axis:' \
|
||||
'--curvestyleall[Additional styles for ALL curves]:style' \
|
||||
'(--with)--curvestyleall[Additional styles for ALL curves]:style' \
|
||||
'(--with)--styleall[Additional styles for ALL curves]:style' \
|
||||
'(--curvestyleall)--with[Additional styles for ALL curves]:style' \
|
||||
'*--extracmds[Additional gnuplot commands]:command' \
|
||||
'*--set[Additional 'set' gnuplot commands]:set-option' \
|
||||
'*--unset[Additional 'unset' gnuplot commands]:unset-option' \
|
||||
'*--equation[Raw symbolic equation]:equation' \
|
||||
'--square[Plot data with square aspect ratio]' \
|
||||
'--square_xy[For 3D plots, set square aspect ratio for ONLY the x,y axes]' \
|
||||
'--hardcopy[Plot to a file]:filename' \
|
||||
'--maxcurves[The maximum allowed number of curves]:number of curves' \
|
||||
'(--3d)--monotonic[Resets plot if an X in the past is seen]' \
|
||||
'--extraValuesPerPoint[How many extra values are given for each data point]:N'\
|
||||
'(--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:' \
|
||||
'--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:' \
|
||||
'*--style[Additional styles for a curve]:curve id: :style:' \
|
||||
'(--3d)*--histogram:plot to treat as a histogram:' \
|
||||
'--binwidth:Histogram bin width:' \
|
||||
'--histstyle:Style of histogram:(frequency unique cumulative cnormal)' \
|
||||
|
58
feedgnuplot.spec
Normal file
58
feedgnuplot.spec
Normal file
@@ -0,0 +1,58 @@
|
||||
# Sample spec file for rpm-based systems. Debian-based systems already have this
|
||||
# packaged, so we do not ship those here
|
||||
|
||||
Name: feedgnuplot
|
||||
Version: 1.38
|
||||
Release: 1%{?dist}
|
||||
Summary: Pipe-oriented frontend to Gnuplot
|
||||
BuildArch: noarch
|
||||
|
||||
License: Artistic or GPL-1+
|
||||
URL: https://www.github.com/dkogan/feedgnuplot/
|
||||
Source0: https://www.github.com/dkogan/feedgnuplot/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
|
||||
BuildRequires: /usr/bin/pod2html
|
||||
BuildRequires: perl-String-ShellQuote
|
||||
BuildRequires: perl-ExtUtils-MakeMaker
|
||||
BuildRequires: perl
|
||||
BuildRequires: gawk
|
||||
BuildRequires: gnuplot
|
||||
BuildRequires: perl-IPC-Run
|
||||
|
||||
Requires: gnuplot
|
||||
|
||||
%description
|
||||
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.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
perl Makefile.PL INSTALLDIRS=vendor
|
||||
make
|
||||
pod2html --title=feedgnuplot bin/feedgnuplot > feedgnuplot.html
|
||||
|
||||
%install
|
||||
make install DESTDIR=%{buildroot} PREFIX=/usr
|
||||
|
||||
mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
|
||||
cp Changes LICENSE feedgnuplot.html %{buildroot}%{_defaultdocdir}/%{name}
|
||||
|
||||
mkdir -p %{buildroot}%{_datadir}/zsh/site-functions
|
||||
cp completions/zsh/* %{buildroot}%{_datadir}/zsh/site-functions
|
||||
|
||||
mkdir -p %{buildroot}%{_datadir}/bash-completion/completions
|
||||
cp completions/bash/* %{buildroot}%{_datadir}/bash-completion/completions
|
||||
|
||||
rm -rf %{buildroot}/usr/lib64
|
||||
|
||||
|
||||
%files
|
||||
%{_bindir}/*
|
||||
%{_datadir}/zsh/*
|
||||
%{_datadir}/bash-completion/*
|
||||
%doc %{_defaultdocdir}/%{name}/*
|
||||
%doc %{_mandir}
|
202
t/plots.t
202
t/plots.t
@@ -17,14 +17,20 @@ BEGIN {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
open(my $pipe, 'gnuplot --version |');
|
||||
if( !$pipe )
|
||||
my $gawkversion = `gawk -V`;
|
||||
if( !$gawkversion || $@ )
|
||||
{
|
||||
print("1..0 # Skip: gawk is required for strftime() in the test suite. Skipping tests.\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
my $gnuplotVersion = `gnuplot --version`;
|
||||
if( !$gnuplotVersion || $@)
|
||||
{
|
||||
print("1..0 # Skip: gnuplot not installed. Tests require ver. 4.6.4; feedgnuplot works with any.\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
my $gnuplotVersion = <$pipe>;
|
||||
chomp $gnuplotVersion;
|
||||
if ($gnuplotVersion ne "gnuplot 4.6 patchlevel 4")
|
||||
{
|
||||
@@ -33,7 +39,7 @@ BEGIN {
|
||||
}
|
||||
}
|
||||
|
||||
use Test::More tests => 52;
|
||||
use Test::More tests => 58;
|
||||
use File::Temp 'tempfile';
|
||||
use IPC::Run 'run';
|
||||
use String::ShellQuote;
|
||||
@@ -320,7 +326,7 @@ tryplot( testname => 'basic line plot with bounds, square aspect ratio',
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'lines on both axes with labels, legends, titles',
|
||||
cmd => q{seq 5 | awk '{print 2*$1, $1*$1}'},
|
||||
cmd => q{seq 5 | gawk '{print 2*$1, $1*$1}'},
|
||||
options => [qw(--lines --points),
|
||||
'--legend', '0', 'data 0',
|
||||
'--title', "Test plot",
|
||||
@@ -369,7 +375,7 @@ tryplot( testname => 'lines on both axes with labels, legends, titles',
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'lines on both axes with labels, legends, titles; different styles',
|
||||
cmd => q{seq 5 | awk '{print 2*$1, $1*$1}'},
|
||||
cmd => q{seq 5 | gawk '{print 2*$1, $1*$1}'},
|
||||
options => ['--legend', '0', 'data 0',
|
||||
'--title', "Test plot",
|
||||
qw(--y2 1 --y2label y2 --xlabel x --ylabel y --y2max 30),
|
||||
@@ -419,7 +425,7 @@ tryplot( testname => 'lines on both axes with labels, legends, titles; different
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'domain plot',
|
||||
cmd => q{seq 5 | awk '{print 2*$1, $1*$1}'},
|
||||
cmd => q{seq 5 | gawk '{print 2*$1, $1*$1}'},
|
||||
options => [qw(--lines --points), '--domain'],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
@@ -465,7 +471,7 @@ tryplot( testname => 'domain plot',
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'dataid plot',
|
||||
cmd => q{seq 5 | awk '{print 2*$1, $1*$1}'},
|
||||
cmd => q{seq 5 | gawk '{print 2*$1, $1*$1}'},
|
||||
options => [qw(--lines --points),
|
||||
qw(--dataid --autolegend)],
|
||||
refplot => <<'EOF' );
|
||||
@@ -512,7 +518,7 @@ tryplot( testname => 'dataid plot',
|
||||
EOF
|
||||
|
||||
tryplot( testname => '3d spiral with bounds, labels',
|
||||
cmd => q{seq 50 | awk '{print 2*cos($1/5), sin($1/5), $1}'},
|
||||
cmd => q{seq 50 | gawk '{print 2*cos($1/5), sin($1/5), $1}'},
|
||||
options => [qw(--lines --points),
|
||||
qw(--3d --domain --zmin -5 --zmax 45 --zlabel z),
|
||||
'--extracmds', 'set view 60,30'],
|
||||
@@ -560,7 +566,7 @@ tryplot( testname => '3d spiral with bounds, labels',
|
||||
EOF
|
||||
|
||||
tryplot( testname => '3d spiral with bounds, labels, square xy aspect ratio',
|
||||
cmd => q{seq 50 | awk '{print 2*cos($1/5), sin($1/5), $1}'},
|
||||
cmd => q{seq 50 | gawk '{print 2*cos($1/5), sin($1/5), $1}'},
|
||||
options => [qw(--lines --points),
|
||||
qw(--3d --domain --zmin -5 --zmax 45 --zlabel z),
|
||||
'--extracmds', 'set view 60,30', '--square_xy'],
|
||||
@@ -608,7 +614,7 @@ tryplot( testname => '3d spiral with bounds, labels, square xy aspect ratio',
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'Monotonicity check',
|
||||
cmd => q{seq 10 | awk '{print (NR-1)%5,NR}'},
|
||||
cmd => q{seq 10 | gawk '{print (NR-1)%5,NR}'},
|
||||
options => [qw(--lines --points --domain --monotonic)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
@@ -655,7 +661,7 @@ EOF
|
||||
|
||||
|
||||
tryplot( testname => 'basic --timefmt plot',
|
||||
cmd => q{seq 5 | awk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1}'},
|
||||
cmd => q{seq 5 | gawk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1}'},
|
||||
options => ['--domain', '--timefmt', '%d %b %Y %H:%M:%S'],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
@@ -701,7 +707,7 @@ tryplot( testname => 'basic --timefmt plot',
|
||||
EOF
|
||||
|
||||
tryplot( testname => '--timefmt plot with bounds',
|
||||
cmd => q{seq 5 | awk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1}'},
|
||||
cmd => q{seq 5 | gawk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1}'},
|
||||
options => ['--domain', '--timefmt', '%d %b %Y %H:%M:%S',
|
||||
'--xmin', '20 Oct 2013 06:05:00',
|
||||
'--xmax', '20 Oct 2013 06:05:20'],
|
||||
@@ -749,7 +755,7 @@ tryplot( testname => '--timefmt plot with bounds',
|
||||
EOF
|
||||
|
||||
tryplot( testname => '--timefmt plot with --monotonic',
|
||||
cmd => q{seq 10 | awk '{x=(NR-1)%5; print strftime("%d %b %Y %T",1382249107+x,1),$1}'},
|
||||
cmd => q{seq 10 | gawk '{x=(NR-1)%5; print strftime("%d %b %Y %T",1382249107+x,1),$1}'},
|
||||
options => ['--domain', '--timefmt', '%d %b %Y %H:%M:%S',
|
||||
'--monotonic'],
|
||||
refplot => <<'EOF' );
|
||||
@@ -795,10 +801,57 @@ 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 | awk '{print $1,$1,$1/10}'},
|
||||
cmd => q{seq 5 | gawk '{print $1,$1,$1/10}'},
|
||||
options => [qw(--domain),
|
||||
qw(--extraValuesPerPoint 1 --curvestyle 0), 'with errorbars'],
|
||||
qw(--extraValuesPerPoint 1 --with errorbars)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
|
||||
@@ -843,6 +896,103 @@ tryplot( testname => 'Error bars (using extraValuesPerPoint)',
|
||||
EOF
|
||||
|
||||
|
||||
tryplot( testname => 'Error bars (using rangesizeall)',
|
||||
cmd => q{seq 5 | gawk '{print $1,$1,$1/10}'},
|
||||
options => [qw(--domain),
|
||||
qw(--rangesizeall 2 --with errorbars)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
|
||||
5.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------**
|
||||
+ + + + + + + + *
|
||||
| *
|
||||
5 ++ +A
|
||||
| *
|
||||
| *
|
||||
| *
|
||||
4.5 ++ **
|
||||
| *** |
|
||||
| * |
|
||||
4 ++ A ++
|
||||
| * |
|
||||
| * |
|
||||
| *** |
|
||||
3.5 ++ ++
|
||||
| *** |
|
||||
| * |
|
||||
3 ++ A ++
|
||||
| * |
|
||||
| * |
|
||||
| *** |
|
||||
2.5 ++ ++
|
||||
| |
|
||||
| *** |
|
||||
2 ++ A ++
|
||||
| * |
|
||||
| *** |
|
||||
| |
|
||||
1.5 ++ ++
|
||||
| |
|
||||
| |
|
||||
1 A* ++
|
||||
** |
|
||||
| |
|
||||
+ + + + + + + + +
|
||||
0.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------++
|
||||
1 1.5 2 2.5 3 3.5 4 4.5 5
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
tryplot( testname => 'Error bars (using rangesize, rangesizeall)',
|
||||
cmd => q{seq 5 | gawk '{print $1,"vert",$1,$1/10,"horiz",5-$1,$1-$1/5,$1+$1/20}'},
|
||||
options => [qw(--domain --dataid),
|
||||
qw(--rangesize vert 2 --rangesizeall 3 --with xerrorbars --style vert), 'with errorbars',
|
||||
qw(--xmin 1 --xmax 5 --ymin 0.5 --ymax 5.5)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
|
||||
+-----------+----------+-----------+----------+-----------+----------+-----------+---------**
|
||||
+ + + + + + + + *
|
||||
| *
|
||||
5 ++ +A
|
||||
| *
|
||||
| *
|
||||
| *
|
||||
| **
|
||||
| *** |
|
||||
## * |
|
||||
4 B# A ++
|
||||
## * |
|
||||
| * |
|
||||
| *** |
|
||||
| |
|
||||
| *** |
|
||||
| # # * |
|
||||
3 ++ #########B## A ++
|
||||
| # # * |
|
||||
| * |
|
||||
| *** |
|
||||
| |
|
||||
| |
|
||||
| *** # # |
|
||||
2 ++ A ##############B### ++
|
||||
| * # # |
|
||||
| *** |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| # # |
|
||||
1 A* ##################B##### ++
|
||||
** # # |
|
||||
| |
|
||||
+ + + + + + + + +
|
||||
+-----------+----------+-----------+----------+-----------+----------+-----------+----------+
|
||||
1 1.5 2 2.5 3 3.5 4 4.5 5
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
SKIP:
|
||||
{
|
||||
|
||||
@@ -860,7 +1010,7 @@ skip "Skipping unreliable tests. Set RUN_ALL_TESTS environment variable to run t
|
||||
|
||||
|
||||
tryplot( testname => 'Histogram plot',
|
||||
cmd => q{seq 50 | awk '{print $1*$1}'},
|
||||
cmd => q{seq 50 | gawk '{print $1*$1}'},
|
||||
options => [qw(--lines --points),
|
||||
qw(--histo 0 --binwidth 50 --ymin 0 --curvestyleall), 'with boxes'],
|
||||
refplot => <<'EOF' );
|
||||
@@ -907,7 +1057,7 @@ tryplot( testname => 'Histogram plot',
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'Cumulative histogram',
|
||||
cmd => q{seq 50 | awk '{print $1*$1}'},
|
||||
cmd => q{seq 50 | gawk '{print $1*$1}'},
|
||||
options => [qw(--lines --points),
|
||||
qw(--histo 0 --histstyle cum --binwidth 50 --ymin 0 --curvestyleall), 'with boxes'],
|
||||
refplot => <<'EOF' );
|
||||
@@ -954,7 +1104,7 @@ tryplot( testname => 'Cumulative histogram',
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'Circles',
|
||||
cmd => q{seq 5 | awk '{print $1,$1,$1/10}'},
|
||||
cmd => q{seq 5 | gawk '{print $1,$1,$1/10}'},
|
||||
options => [qw(--circles --domain)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
@@ -1008,7 +1158,7 @@ note( "Starting to run streaming tests. These will take several seconds each" );
|
||||
# points, and then "exit", so I should have two frames worth of data plotted. I
|
||||
# pre-send a 0 so that the gnuplot autoscaling is always well-defined
|
||||
tryplot( testname => 'basic streaming test',
|
||||
cmd => q{seq 500 | awk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 1.2");}'},
|
||||
cmd => q{seq 500 | gawk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 1.2");}'},
|
||||
options => [qw(--lines --points --stream)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
@@ -1094,7 +1244,7 @@ tryplot( testname => 'basic streaming test',
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'basic streaming test, twice as fast',
|
||||
cmd => q{seq 500 | awk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 0.6");}'},
|
||||
cmd => q{seq 500 | gawk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 0.6");}'},
|
||||
options => [qw(--lines --points --stream 0.4)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
@@ -1181,7 +1331,7 @@ EOF
|
||||
|
||||
|
||||
tryplot( testname => 'streaming with --xlen',
|
||||
cmd => q{seq 500 | awk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 0.6");}'},
|
||||
cmd => q{seq 500 | gawk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 0.6");}'},
|
||||
options => [qw(--lines --points --stream 0.4 --xlen 1.1)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
@@ -1267,7 +1417,7 @@ tryplot( testname => 'streaming with --xlen',
|
||||
EOF
|
||||
|
||||
tryplot( testname => 'streaming with --monotonic',
|
||||
cmd => q{seq 500 | awk '{if(NR==11) {print "exit";} else {x=(NR-1)%5; if(x==0) {print -1,-1;} print x,NR;}; fflush(); system("sleep 0.6");}'},
|
||||
cmd => q{seq 500 | gawk '{if(NR==11) {print "exit";} else {x=(NR-1)%5; if(x==0) {print -1,-1;} print x,NR;}; fflush(); system("sleep 0.6");}'},
|
||||
options => [qw(--lines --points --stream 0.4 --domain --monotonic)],
|
||||
refplot => <<'EOF' );
|
||||
|
||||
@@ -1673,7 +1823,7 @@ tryplot( testname => 'streaming with --monotonic',
|
||||
EOF
|
||||
|
||||
tryplot( testname => '--timefmt streaming plot with --xlen',
|
||||
cmd => q{seq 5 | awk 'BEGIN{ print strftime("%d %b %Y %T",1382249107-1,1),-4;} {if(NR==3) {print "exit";} else{ print strftime("%d %b %Y %T",1382249107+$1,1),$1;} fflush(); system("sleep 0.6")}'},
|
||||
cmd => q{seq 5 | gawk 'BEGIN{ print strftime("%d %b %Y %T",1382249107-1,1),-4;} {if(NR==3) {print "exit";} else{ print strftime("%d %b %Y %T",1382249107+$1,1),$1;} fflush(); system("sleep 0.6")}'},
|
||||
options => ['--points', '--lines',
|
||||
'--domain', '--timefmt', '%d %b %Y %H:%M:%S',
|
||||
qw(--stream 0.4 --xlen 3)],
|
||||
@@ -1761,7 +1911,7 @@ tryplot( testname => '--timefmt streaming plot with --xlen',
|
||||
EOF
|
||||
|
||||
tryplot( testname => '--timefmt streaming plot with --monotonic',
|
||||
cmd => q{seq 10 | awk '{x=(NR-1)%5; if(x==0) {print strftime("%d %b %Y %T",1382249107-1,-4),-4;} print strftime("%d %b %Y %T",1382249107+x,1),NR; fflush(); system("sleep 0.6")}'},
|
||||
cmd => q{seq 10 | gawk '{x=(NR-1)%5; if(x==0) {print strftime("%d %b %Y %T",1382249107-1,-4),-4;} print strftime("%d %b %Y %T",1382249107+x,1),NR; fflush(); system("sleep 0.6")}'},
|
||||
options => ['--points', '--lines',
|
||||
'--domain', '--timefmt', '%d %b %Y %H:%M:%S',
|
||||
qw(--stream 0.4 --monotonic)],
|
||||
@@ -2177,7 +2327,7 @@ sub tryplot
|
||||
my %args = @_;
|
||||
|
||||
my @options = ('--exit',
|
||||
'--extracmds', 'unset grid',
|
||||
qw(--unset grid),
|
||||
'--terminal', 'dumb 100,40');
|
||||
unshift @options, @{$args{options}};
|
||||
|
||||
|
Reference in New Issue
Block a user