Compare commits

..

170 Commits

Author SHA1 Message Date
Dima Kogan
8429e139e3 changelog bump 2022-03-04 14:47:56 -08:00
Dima Kogan
4109a586da Merge branch 'master' into debian 2022-03-04 14:46:34 -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
41f4de612c patch: change the shebang back to /usr/bin/perl 2021-08-28 13:35:54 -07:00
Dima Kogan
78b2069010 Merge branch 'master' into debian 2021-08-28 13:34:39 -07:00
Dima Kogan
4817a53d21 #! line uses /usr/bin/env to work with nonstandard installations 2021-08-28 13:33:30 -07:00
Dima Kogan
bd8f1bbab3 changelog bump 2021-08-27 10:47:06 -07:00
Dima Kogan
4d138f24a3 Merge branch 'master' into debian 2021-08-27 10:46:40 -07:00
Dima Kogan
6f1795ff7d version bump 2021-08-27 10:46:28 -07:00
Dima Kogan
b0fcad93ae test fix: I count the skipped tests properly 2021-08-27 10:45:20 -07:00
Dima Kogan
59b22ddf3b changelog bump 2021-08-27 10:31:29 -07:00
Dima Kogan
4d1049e16a Merge tag 'v1.59' into debian 2021-08-27 10:31:16 -07:00
Dima Kogan
1f6d8c141f added forgotten guide plot 2021-07-22 23:33:39 -07:00
Dima Kogan
1cdab267d1 changelog bump 2021-03-14 20:41:03 -07:00
Dima Kogan
ae7ce22afc Merge branch 'master' into debian 2021-03-11 16:32:34 -08:00
Dima Kogan
4e292531ca added build-dep for the tests 2021-02-21 14:08:02 -08:00
Dima Kogan
dd190cfd28 version bump 2021-02-21 14:01:04 -08:00
Dima Kogan
10fa62110a Merge branch 'master' into debian 2021-02-21 13:59:32 -08:00
Dima Kogan
c6ad42fa3c version bump 2021-02-03 14:51:17 -08:00
Dima Kogan
12d148f258 Merge branch 'master' into debian 2021-02-03 14:50:55 -08:00
Dima Kogan
bfc12f82a0 changelog bump 2020-07-20 15:55:17 -07:00
Dima Kogan
09d2000bec Merge branch 'master' into debian 2020-07-20 15:54:38 -07:00
Dima Kogan
0c209a8a2a changelog bump 2020-04-17 14:21:17 -07:00
Dima Kogan
04f966ea17 Merge branch 'master' into debian 2020-04-17 14:19:49 -07:00
Dima Kogan
bad9ac9732 version bump 2020-01-08 18:59:42 -08:00
Dima Kogan
3c14e4e106 Merge branch 'master' into debian 2020-01-08 18:57:53 -08:00
Dima Kogan
fb76985239 Use Dima's @debian.org email address for Uploaders 2019-08-25 15:45:28 -07:00
Dima Kogan
2b7dd9dbc8 changelog bump 2019-08-25 15:36:10 -07:00
Dima Kogan
a022064a5c Merge tag 'v1.52' into debian 2019-08-25 15:34:04 -07:00
Dima Kogan
dda83b2c27 Revert "added note to INSTALL file"
This reverts commit 87a4069a5a.

This should go into the master branch, not the debian branch
2019-08-25 15:25:29 -07:00
Dima Kogan
3a28d5fed9 Added Suggests:vnlog 2019-08-25 15:22:34 -07:00
Dima Kogan
87a4069a5a added note to INSTALL file 2018-11-29 17:16:47 -08:00
Jelmer Vernooij
dac7e2a2d4 Trim trailing whitespace.
Fixes lintian: file-contains-trailing-whitespace
See https://lintian.debian.org/tags/file-contains-trailing-whitespace.html for more details.
2018-10-20 20:50:27 +00:00
Jelmer Vernooij
3ac5b1b9f3 Use secure copyright file specification URI.
Fixes lintian: insecure-copyright-format-uri
See https://lintian.debian.org/tags/insecure-copyright-format-uri.html for more details.
2018-10-20 20:50:27 +00:00
Dima Kogan
5772f8894f changelog bump 2018-09-29 11:00:57 -07:00
Dima Kogan
958c6364c3 Merge tag 'v1.51' into debian 2018-09-29 11:00:01 -07:00
Dima Kogan
744239b7b7 version bump 2018-08-24 13:16:40 -07:00
Dima Kogan
0c06f72d5d Merge branch 'master' into debian 2018-08-24 13:15:05 -07:00
Dima Kogan
778825bd34 completion knows about the fnormal distribution 2018-08-24 13:11:57 -07:00
Dima Kogan
e514b24e39 changelog update 2018-06-17 22:18:41 -07:00
Dima Kogan
88eeff7890 updated URLs to point to salsa 2018-04-19 08:12:29 -07:00
Dima Kogan
e167e057d3 changelog bump 2018-03-16 13:56:32 -07:00
Dima Kogan
38e92c5ba9 Merge branch 'master' into debian 2018-03-16 13:55:16 -07:00
Dima Kogan
811d0d45ab new bash-completion install dir 2018-03-11 18:32:31 -07:00
Dima Kogan
83d4e66ea5 version bump 2018-02-24 12:57:03 -08:00
Dima Kogan
c2c327953d Merge branch 'master' into debian 2018-02-24 12:55:45 -08:00
Dima Kogan
965570cf70 version bump 2017-10-29 14:06:35 -07:00
Dima Kogan
ebc818791c Merge tag 'v1.45' into debian 2017-10-29 14:06:04 -07:00
Dima Kogan
f6c1e943ab version bump 2017-06-20 16:46:02 -07:00
Dima Kogan
b8b448e256 Merge branch 'master' into debian 2017-06-20 16:45:23 -07:00
Dima Kogan
a32370c514 changelog bump 2017-06-19 13:16:32 -07:00
Dima Kogan
5298072894 Merge tag 'v1.43' into debian 2017-06-19 13:16:06 -07:00
Dima Kogan
f21797a89e changelog bump 2017-04-25 11:03:24 -07:00
Dima Kogan
7c704dc251 Merge branch 'master' into debian 2017-04-25 11:02:00 -07:00
Dima Kogan
6f4816efd5 version bump 2017-02-24 23:53:35 -08:00
Dima Kogan
008dc01d17 Merge branch 'master' into debian 2017-02-24 23:51:34 -08:00
Dima Kogan
fc1a8af4bf changelog bump 2016-11-25 14:52:25 -08:00
Dima Kogan
4da7705077 added new dependency 2016-11-25 14:50:52 -08:00
Dima Kogan
b76c18a92d Merge branch 'master' into debian 2016-11-25 14:47:00 -08:00
Dima Kogan
8ad58134e1 version bump 2016-10-15 20:51:52 -07:00
Dima Kogan
e6cb0830e8 Merge branch 'master' into debian 2016-10-15 20:51:44 -07:00
Dima Kogan
1e51157c0b changelog bump 2016-01-01 08:15:00 -08:00
Dima Kogan
9a476c6429 Merge branch 'master' into debian 2016-01-01 08:13:00 -08:00
Dima Kogan
e064c29daa changelog bump 2015-11-13 11:15:24 -08:00
Dima Kogan
3d85dba82a Merge branch 'master' into debian 2015-11-13 11:13:37 -08:00
Dima Kogan
f6a20cf8d8 changelog bump 2015-11-02 13:56:50 -08:00
Dima Kogan
9497e9d751 Merge branch 'master' into debian 2015-11-01 13:04:18 -08:00
Dima Kogan
f9174031cc Revert "even streaming feedgnuplots persist"
This reverts commit 9d98b84546.
This doesn't belong in the debian branch
2015-11-01 13:02:45 -08:00
Dima Kogan
ab26e54e20 Revert "slighly fancier histogram recipe"
This reverts commit 5609773b5b.

This doesn't belong in the debian branch
2015-11-01 13:02:30 -08:00
Dima Kogan
9d98b84546 even streaming feedgnuplots persist
When the data-feeding pipe dies (data source exits) I still want to see the
realtime plot, as it appeared at the end
2015-06-22 17:03:30 -07:00
Dima Kogan
5609773b5b slighly fancier histogram recipe 2015-06-20 12:55:35 -07:00
Dima Kogan
ac06d5410a changelog bump 2014-10-10 14:05:31 -07:00
Dima Kogan
199796d874 Depends now works with the 'gnuplot5' packages
There's now a family of 'gnuplot5' packages in addition to the 'gnuplot' ones. I
now Depend on either one or on a generic "gnuplot" fallback.
2014-10-10 14:05:05 -07:00
Dima Kogan
a9d1b533fb changelog bump 2014-08-06 15:20:07 -07:00
Dima Kogan
0f0e51a159 by default I depend on "gnuplot-nox", not "gnuplot"
It turns out that the "base" gnuplot package that all flavors provide is called
"gnuplot-nox". So paradoxically, "gnuplot-x11" Provides "gnuplot-nox". I had my
dependency set up such that "gnuplot-nox" would not satisfy feedgnuplot. It does
now
2014-08-06 15:19:14 -07:00
Dima Kogan
73ed9b545a Merge tag 'v1.34' into debian 2014-08-06 15:16:17 -07:00
Dima Kogan
10987c5187 version bump 2014-02-06 23:19:19 -08:00
Dima Kogan
9ae728805d Merge branch 'master' into debian 2014-02-06 23:18:30 -08:00
Dima Kogan
f790ac4683 version bump 2014-02-05 14:01:22 -08:00
Dima Kogan
af94ddf457 Merge branch 'master' into debian 2014-02-05 14:00:16 -08:00
Dima Kogan
abc37bfa1e changelog bump 2014-01-24 15:51:10 -08:00
Dima Kogan
19c56ae041 Merge branch 'master' into debian 2014-01-24 15:48:57 -08:00
Dima Kogan
417ceb2bcc made the VCS links canonical 2013-12-04 02:37:11 -08:00
Dima Kogan
a374e71fae changelog bump 2013-12-04 02:05:29 -08:00
Dima Kogan
0551483616 Merge branch 'master' into debian 2013-12-04 02:02:21 -08:00
Dima Kogan
48fb730f0b Merge branch 'master' into debian 2013-12-04 01:59:56 -08:00
Dima Kogan
2fbc8f62d3 Removed Anton Gladky from the Uploaders 2013-12-04 01:59:40 -08:00
Dima Kogan
670a5b84f9 gnuplot dependency now favors graphical gnuplot packages 2013-12-02 23:53:53 -08:00
Anton Gladky
b92093464b Add libipc-run-perl to Build-Depends to execute tests. 2013-10-25 21:16:24 +02:00
Anton Gladky
516077cbd0 Merge changelog entries. 2013-10-25 21:01:50 +02:00
Dima Kogan
f8e69778a2 build-dep on gnuplot for tests 2013-10-20 01:26:28 -07:00
Dima Kogan
7dca5c31bf changelog bump 2013-10-20 01:19:59 -07:00
Dima Kogan
a6fef8c9f4 Merge branch 'master' into debian 2013-10-20 01:19:31 -07:00
Dima Kogan
987b7d90be bumped changelog, updated build-deps 2013-10-20 00:58:48 -07:00
Dima Kogan
d7e30ac655 Merge branch 'master' into debian 2013-10-20 00:56:39 -07:00
Dima Kogan
ece4b29a2a snapshot version bump 2013-09-23 06:15:21 -07:00
Dima Kogan
bbd2a44bf9 Merge branch 'master' into debian 2013-09-23 06:07:29 -07:00
Dima Kogan
d2613db253 version bump 2013-04-28 17:43:12 -07:00
Dima Kogan
2217a1a1ba Now building the html documentation from the correct POD source 2013-04-28 17:42:21 -07:00
Dima Kogan
184102a420 Merge remote-tracking branch 'gitdebian/debian' into debian 2013-02-08 02:27:46 -08:00
Dima Kogan
1cca6c8eb4 version bump 2013-02-08 02:19:47 -08:00
Dima Kogan
78368597c8 Merge branch 'master' into debian 2013-02-08 02:19:39 -08:00
Anton Gladky
4de5984551 Update email. 2013-02-03 17:56:55 +01:00
Anton Gladky
512d515ff6 Update watch-file. Thanks to Bart Martens. 2013-02-03 17:56:29 +01:00
Dima Kogan
1d1b5e6808 removed redundant pieces of debian/gbp.conf 2012-12-14 10:32:59 -08:00
Dima Kogan
40b18cf8f9 priority now optional 2012-12-14 10:32:28 -08:00
Dima Kogan
5283810abe fixed watchfile to work with newer github pages 2012-11-18 11:59:03 -08:00
Dima Kogan
9ab429e618 Small packaging tweaks:
These were suggested by paultag@debian.org

1. debian/changelog just has the one entry, to indicate what has changed from
the perspective of a user of this package. The old changes in that file have
never been uploaded to Debian

2. Uploading to unstable instead of experimental

3. Bumped up debhelper compat to 9

4. Removed DM-Upload-Allowed

5. Minor standards bump
2012-10-30 11:22:02 -07:00
Dima Kogan
14a39b6fd2 version bump 2012-09-29 16:42:50 -07:00
Dima Kogan
d705699459 gbp.conf knows about upstream tags 2012-09-29 16:42:34 -07:00
Dima Kogan
8867cf54f0 Merge remote-tracking branch 'upstream/master' into debian 2012-09-29 16:35:49 -07:00
Dima Kogan
52b9024320 version bump 2012-09-14 01:32:07 -07:00
Dima Kogan
6809545a16 added doc-base definition 2012-09-14 01:29:46 -07:00
Dima Kogan
a66e45adb5 added Anton Gladky as an Uploader 2012-09-14 01:14:29 -07:00
Dima Kogan
8557cd4870 more thorough cleanup of pod2html detritus 2012-09-11 14:30:34 -07:00
Dima Kogan
88fbd90a28 minor changelog update 2012-09-11 13:39:45 -07:00
Dima Kogan
d9906d8e88 Vcs-Git and Vcs-Browser now point to alioth 2012-09-11 13:37:19 -07:00
Dima Kogan
186b7a3ae0 added watch file to find tagged tarballs on github 2012-09-11 13:33:40 -07:00
Dima Kogan
62eb5f17bb building and installing the HTML documentation 2012-09-11 13:20:58 -07:00
Dima Kogan
a164c4ff29 Merge remote-tracking branch 'upstream/master' into debian 2012-09-11 13:12:55 -07:00
Dima Kogan
30d5b10fd6 debian-science is now the maintainer 2012-09-11 11:47:11 -07:00
Dima Kogan
f2d4b7d78b marking package as non-native 2012-09-11 11:44:11 -07:00
Dima Kogan
00d2f0d6a6 Merge tag 'upstream/1.22' into debian 2012-09-11 11:42:57 -07:00
Dima Kogan
0ccffde918 added git-buildpackage configuration 2012-09-11 11:41:57 -07:00
Dima Kogan
805060ba92 changelog now references a non-native package 2012-09-11 11:33:14 -07:00
Dima Kogan
6ba7fc053c allowing uploads by DMs 2012-09-10 23:40:29 -07:00
Dima Kogan
21c38efc2d debian changelog now closes the ITP bug 2012-09-10 23:30:59 -07:00
Dima Kogan
7833e63c32 debian/copyright has a single license for the whole package 2012-09-10 23:27:12 -07:00
Dima Kogan
d9e5067f20 more standard copyright file 2012-09-10 21:07:22 -07:00
Dima Kogan
44a81e153d updated debian standards version 2012-09-10 20:55:49 -07:00
Dima Kogan
458367883a version bump 2012-09-10 20:48:34 -07:00
Dima Kogan
d4997cbba7 cleaned up debian/control 2012-09-10 20:45:12 -07:00
Dima Kogan
5dcffaa62d updated package description 2012-09-10 18:31:28 -07:00
Dima Kogan
5cf323a97c removed debian/watch
I have a native package at this point, so I'll make new tags ONLY when a new
packaged release is cut. If this ever changes, a watch file will be re-added
2012-09-10 18:28:46 -07:00
Dima Kogan
229c08582d using more up-to-date copyright format spec 2012-09-10 18:26:21 -07:00
Dima Kogan
04876fa72e version bump 2012-09-03 08:33:36 -07:00
Dima Kogan
e61e831ef2 version bump 2012-09-02 23:53:17 -07:00
Dima Kogan
e5973e4fd6 version bump 2012-08-31 01:36:23 -07:00
Dima Kogan
df2c78a85e changelog bump 2012-02-11 21:05:07 -08:00
Dima Kogan
472520fdd8 made consistent my email addy in the debian changelog 2012-02-11 21:03:53 -08:00
Dima Kogan
54f7f17558 version bump 2011-12-27 16:48:13 -08:00
Dima Kogan
a8dc63c472 version bump 2011-11-20 19:20:11 -08:00
Dima Kogan
10a4d35e97 added zsh and bash completions to the package 2011-11-20 19:17:10 -08:00
Hermann Schwarting
70946c92c2 add build dependency libtest-script-run-perl
It's required to run the tests
2011-11-20 13:22:59 -08:00
Dima Kogan
a8f5b99c23 version bump 2011-11-11 00:11:41 -08:00
Dima Kogan
5cb7e3616a now building a native package 2011-11-11 00:10:05 -08:00
Dima Kogan
b9ce0ea175 I don't actually want to export the tree when building my package 2011-10-29 02:56:18 -07:00
Dima Kogan
d6381c747b bump 2011-10-23 13:39:03 -07:00
Dima Kogan
a054645a71 standards bump to make lintian happier 2011-10-23 13:38:00 -07:00
Dima Kogan
0ce0f8a3f0 added configuration to let git-buildpackage build this package 2011-10-23 13:37:39 -07:00
Dima Kogan
3171f272fc added source format for the debianization 2011-10-23 13:19:44 -07:00
Dima Kogan
1cced9a621 fixed wrong email address 2011-10-23 13:19:44 -07:00
Dima Kogan
3132b76caa version bump 2011-10-23 13:19:44 -07:00
Dima Kogan
b90e783f69 main homepage at github, not cpan 2011-10-16 11:31:30 -07:00
Dima Kogan
9b0bc07ae4 whitespace 2011-10-16 11:27:02 -07:00
Dima Kogan
7bcb3920a1 renamed main script feedGnuplot -> feedgnuplot 2011-10-16 11:25:22 -07:00
Dima Kogan
0ec6cb3d6d new email address 2011-09-15 18:58:18 -07:00
Dima Kogan
9edb99d4cd removed documentation-installing file that installed wrong documentation 2011-06-11 23:07:29 -07:00
Dima Kogan
a1fac377a8 version bump 2011-05-22 15:31:16 -07:00
Dima Kogan
80a5fac5f2 version bump 2011-04-26 14:25:23 -07:00
Dima Kogan
f6fc00f3f2 version bump 2011-04-19 11:04:07 -07:00
Dima Kogan
02d3f2bc92 version bump 2011-04-09 14:11:15 -07:00
Dima Kogan
f682fa0816 debian package depends on gnuplot 2011-04-03 17:26:22 -07:00
Dima Kogan
1e63a87a3d version bump 2011-04-03 17:26:22 -07:00
Dima Kogan
47846ea562 added debian directory 2011-02-06 16:01:00 -08:00
Dima Kogan
36d1db13a3 added realtime gnuplot script from
http://users.softlab.ece.ntua.gr/~ttsiod/gnuplotStreaming.html
2009-12-19 20:46:06 -08:00
19 changed files with 1032 additions and 22 deletions

16
Changes
View File

@@ -1,3 +1,19 @@
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)
* Test suite fix: we have the right number of tests
-- Dima Kogan <dkogan@debian.org> Fri, 27 Aug 2021 10:46:18 -0700
feedgnuplot (1.59)
* --timefmt --histogram work together

View File

@@ -1,4 +1,4 @@
#!/usr/bin/perl
#!/usr/bin/env perl
package feedgnuplot; # for the metacpan indexer
@@ -16,7 +16,7 @@ use Pod::Usage;
use Time::Piece;
# Makefile.PL assumes this is in ''
my $VERSION = '1.59';
my $VERSION = '1.61';
my %options;
interpretCommandline();
@@ -115,11 +115,12 @@ sub interpretCommandline
'3d!', 'colormap!', 'lines!', 'points!', 'circles',
'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',
'xmin=s', 'xmax=s', 'x2min=s', 'x2max=s',
'ymin=f', 'ymax=f', 'y2min=f', 'y2max=f',
'zmin=f', 'zmax=f',
'cbmin=f', 'cbmax=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@', 'cmds=s@',
@@ -422,15 +423,6 @@ sub interpretCommandline
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} )
{
print STDERR "--square_xy only makes sense with --3d\n";
@@ -796,6 +788,7 @@ sub mainThread
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 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};
if($options{square})
@@ -888,7 +881,15 @@ sub mainThread
sendRangeCommand( "xrange", $options{xmin}, $options{xmax} );
sendRangeCommand( "yrange", $options{ymin}, $options{ymax} );
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
print(PIPE "$_\n") foreach (@{$options{extracmds}});
@@ -1176,9 +1177,10 @@ sub plotStoredData
my @nonemptyCurves = grep { $_->{datastring} } @curves;
my @extraopts = map {$_->{options}} @nonemptyCurves;
my $body = join('', map { "$_," } @{$options{equation}});
$body .= join(', ' , map({ "'-' $_" } @extraopts) );
$body .= join('', map { ",$_" } @{$options{'equation-above'}});
my @components = (@{$options{equation}},
map({ "'-' $_" } @extraopts),
@{$options{'equation-above'}});
my $body = join(',', @components);
if($options{'3d'}) { print PIPE "splot $body\n"; }
else { print PIPE "plot $body\n"; }
@@ -1924,9 +1926,16 @@ Interpret the X data as a time/date, parsed with the given format
C<--colormap>
Show a colormapped xy plot. Requires extra data for the color. zmin/zmax can be
used to set the extents of the colors. Automatically sets the
C<--rangesize>/C<--tuplesize>.
This is a legacy option used to who a colormapped xy plot. It does:
- 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
@@ -2003,10 +2012,11 @@ instance C<--set 'xrange [20:10]'> to set the given inverted bounds.
=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
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

View File

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

View File

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

276
debian/changelog vendored Normal file
View File

@@ -0,0 +1,276 @@
feedgnuplot (1.61-1) unstable; urgency=medium
* New upstream release
- 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:47:42 -0800
feedgnuplot (1.60-1) unstable; urgency=medium
* New upstream release
- --timefmt --histogram work together
-- Dima Kogan <dkogan@debian.org> Fri, 27 Aug 2021 10:27:56 -0700
feedgnuplot (1.58-1) unstable; urgency=medium
* New upstream release
- Added --using, --usingall
- Added --cmds as a synonym for --extracmds
-- Dima Kogan <dkogan@debian.org> Thu, 11 Mar 2021 16:33:01 -0800
feedgnuplot (1.57-1) unstable; urgency=medium
* New upstream release
- Added --xticlabels to label the x-axis tics from the data
- Added --equation-above and --equation-below to control the equation
drawing sequence
-- Dima Kogan <dkogan@debian.org> Sun, 21 Feb 2021 14:00:59 -0800
feedgnuplot (1.56-1) unstable; urgency=medium
* New upstream release
- Updated default hardcopy settings
-- Dima Kogan <dkogan@debian.org> Wed, 03 Feb 2021 14:44:44 -0800
feedgnuplot (1.55-1) unstable; urgency=medium
* New upstream release
- Fixed regression in 1.54: --style overrides --with
-- Dima Kogan <dkogan@debian.org> Mon, 20 Jul 2020 15:55:13 -0700
feedgnuplot (1.54-1) unstable; urgency=medium
* New upstream release
- Added --every and --everyall to decimate the input data
- --timefmt can be used with --histogram
-- Dima Kogan <dkogan@debian.org> Fri, 17 Apr 2020 14:21:07 -0700
feedgnuplot (1.53-1) unstable; urgency=medium
* New upstream release
- Full support for all 4 axes. Added --x2...
-- Dima Kogan <dkogan@debian.org> Wed, 08 Jan 2020 18:59:29 -0800
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 Normal file
View File

@@ -0,0 +1 @@
9

22
debian/control vendored Normal file
View File

@@ -0,0 +1,22 @@
Source: feedgnuplot
Section: science
Priority: optional
Build-Depends: debhelper (>= 9), libstring-shellquote-perl, perl, gawk, gnuplot, libipc-run-perl, liblist-moreutils-perl, libvnlog-perl, vnlog
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 Normal file
View File

@@ -0,0 +1,24 @@
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'.

9
debian/feedgnuplot.doc-base vendored Normal file
View File

@@ -0,0 +1,9 @@
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

1
debian/feedgnuplot.docs vendored Normal file
View File

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

2
debian/feedgnuplot.install vendored Normal file
View File

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

4
debian/gbp.conf vendored Normal file
View File

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

1
debian/patches/series vendored Normal file
View File

@@ -0,0 +1 @@
shebang-to-usr-bin-perl.patch

View File

@@ -0,0 +1,15 @@
Author: Dima Kogan <dima@secretsauce.net>
Date: Sat Aug 28 13:33:00 2021 -0700
#! line uses /usr/bin/env to work with nonstandard installations
diff --git a/bin/feedgnuplot b/bin/feedgnuplot
index 3123c5b..e5e7ccf 100755
--- a/bin/feedgnuplot
+++ b/bin/feedgnuplot
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+#!/usr/bin/perl
package feedgnuplot; # for the metacpan indexer

12
debian/rules vendored Executable file
View File

@@ -0,0 +1,12 @@
#!/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

1
debian/source/format vendored Normal file
View File

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

4
debian/watch vendored Normal file
View File

@@ -0,0 +1,4 @@
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

610
guide/guide-27.svg Normal file
View File

@@ -0,0 +1,610 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<svg
width="800" height="600"
viewBox="0 0 800 600"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
>
<title>Gnuplot</title>
<desc>Produced by GNUPLOT 5.4 patchlevel 1 </desc>
<g id="gnuplot_canvas">
<rect x="0" y="0" width="800" height="600" fill="none"/>
<defs>
<circle id='gpDot' r='0.5' stroke-width='0.5' stroke='currentColor'/>
<path id='gpPt0' stroke-width='0.190' stroke='currentColor' d='M-1,0 h2 M0,-1 v2'/>
<path id='gpPt1' stroke-width='0.190' stroke='currentColor' d='M-1,-1 L1,1 M1,-1 L-1,1'/>
<path id='gpPt2' stroke-width='0.190' stroke='currentColor' d='M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1'/>
<rect id='gpPt3' stroke-width='0.190' stroke='currentColor' x='-1' y='-1' width='2' height='2'/>
<rect id='gpPt4' stroke-width='0.190' stroke='currentColor' fill='currentColor' x='-1' y='-1' width='2' height='2'/>
<circle id='gpPt5' stroke-width='0.190' stroke='currentColor' cx='0' cy='0' r='1'/>
<use xlink:href='#gpPt5' id='gpPt6' fill='currentColor' stroke='none'/>
<path id='gpPt7' stroke-width='0.190' stroke='currentColor' d='M0,-1.33 L-1.33,0.67 L1.33,0.67 z'/>
<use xlink:href='#gpPt7' id='gpPt8' fill='currentColor' stroke='none'/>
<use xlink:href='#gpPt7' id='gpPt9' stroke='currentColor' transform='rotate(180)'/>
<use xlink:href='#gpPt9' id='gpPt10' fill='currentColor' stroke='none'/>
<use xlink:href='#gpPt3' id='gpPt11' stroke='currentColor' transform='rotate(45)'/>
<use xlink:href='#gpPt11' id='gpPt12' fill='currentColor' stroke='none'/>
<path id='gpPt13' stroke-width='0.190' stroke='currentColor' d='M0,1.330 L1.265,0.411 L0.782,-1.067 L-0.782,-1.076 L-1.265,0.411 z'/>
<use xlink:href='#gpPt13' id='gpPt14' fill='currentColor' stroke='none'/>
<filter id='textbox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
<feFlood flood-color='white' flood-opacity='1' result='bgnd'/>
<feComposite in='SourceGraphic' in2='bgnd' operator='atop'/>
</filter>
<filter id='greybox' filterUnits='objectBoundingBox' x='0' y='0' height='1' width='1'>
<feFlood flood-color='lightgrey' flood-opacity='1' result='grey'/>
<feComposite in='SourceGraphic' in2='grey' operator='atop'/>
</filter>
</defs>
<g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M138.84,558.00 L675.83,558.00 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,558.00 L149.34,558.00 M675.83,558.00 L665.33,558.00 '/> <g transform="translate(129.05,562.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text>-6</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M138.84,468.50 L675.83,468.50 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,468.50 L149.34,468.50 M675.83,468.50 L665.33,468.50 '/> <g transform="translate(129.05,473.05)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text>-4</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M138.84,379.00 L675.83,379.00 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,379.00 L149.34,379.00 M675.83,379.00 L665.33,379.00 '/> <g transform="translate(129.05,383.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text>-2</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M138.84,289.50 L675.83,289.50 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,289.50 L149.34,289.50 M675.83,289.50 L665.33,289.50 '/> <g transform="translate(129.05,294.05)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 0</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M138.84,200.01 L675.83,200.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,200.01 L149.34,200.01 M675.83,200.01 L665.33,200.01 '/> <g transform="translate(129.05,204.56)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 2</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M138.84,110.51 L675.83,110.51 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,110.51 L149.34,110.51 M675.83,110.51 L665.33,110.51 '/> <g transform="translate(129.05,115.06)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 4</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M138.84,21.01 L675.83,21.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,21.01 L149.34,21.01 M675.83,21.01 L665.33,21.01 '/> <g transform="translate(129.05,25.56)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 6</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M138.84,558.00 L138.84,21.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,558.00 L138.84,547.50 M138.84,21.01 L138.84,31.51 '/> <g transform="translate(138.84,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text>-6</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M228.34,558.00 L228.34,21.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M228.34,558.00 L228.34,547.50 M228.34,21.01 L228.34,31.51 '/> <g transform="translate(228.34,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text>-4</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M317.84,558.00 L317.84,21.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M317.84,558.00 L317.84,547.50 M317.84,21.01 L317.84,31.51 '/> <g transform="translate(317.84,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text>-2</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M407.34,558.00 L407.34,21.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M407.34,558.00 L407.34,547.50 M407.34,21.01 L407.34,31.51 '/> <g transform="translate(407.34,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 0</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M496.83,558.00 L496.83,21.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M496.83,558.00 L496.83,547.50 M496.83,21.01 L496.83,31.51 '/> <g transform="translate(496.83,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 2</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M586.33,558.00 L586.33,21.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M586.33,558.00 L586.33,547.50 M586.33,21.01 L586.33,31.51 '/> <g transform="translate(586.33,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 4</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="gray" stroke="currentColor" stroke-width="0.50" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='gray' stroke-dasharray='2,4' class="gridline" d='M675.83,558.00 L675.83,21.01 '/></g>
<g fill="none" color="gray" stroke="gray" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M675.83,558.00 L675.83,547.50 M675.83,21.01 L675.83,31.51 '/> <g transform="translate(675.83,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 6</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,21.01 L138.84,558.00 L675.83,558.00 L675.83,21.01 L138.84,21.01 Z '/></g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g id="gnuplot_plot_1" ><title>gnuplot_plot_1</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '153.91,483.57 157.16,480.33 141.81,471.47 150.67,486.82 153.91,483.57 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M153.91,483.57 L157.16,480.33 L141.81,471.47 L150.67,486.82 L153.91,483.57 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,513.25 L153.91,483.57 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '158.65,437.33 162.06,434.61 148.49,424.63 155.25,440.06 158.65,437.33 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M158.65,437.33 L162.06,434.61 L148.49,424.63 L155.25,440.06 L158.65,437.33 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,468.50 L158.65,437.33 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '164.01,391.12 167.58,388.98 156.03,377.82 160.45,393.26 164.01,391.12 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M164.01,391.12 L167.58,388.98 L156.03,377.82 L160.45,393.26 L164.01,391.12 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,423.75 L164.01,391.12 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '170.01,345.07 173.72,343.59 164.48,331.24 166.30,346.56 170.01,345.07 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M170.01,345.07 L173.72,343.59 L164.48,331.24 L166.30,346.56 L170.01,345.07 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,379.00 L170.01,345.07 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '176.62,299.40 180.43,298.64 173.78,285.19 172.82,300.16 176.62,299.40 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M176.62,299.40 L180.43,298.64 L173.78,285.19 L172.82,300.16 L176.62,299.40 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,334.25 L176.62,299.40 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '183.59,254.32 187.43,254.32 183.59,239.97 179.75,254.32 183.59,254.32 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M183.59,254.32 L187.43,254.32 L183.59,239.97 L179.75,254.32 L183.59,254.32 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,289.50 L183.59,254.32 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '190.56,209.90 194.36,210.67 193.40,195.69 186.75,209.14 190.56,209.90 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M190.56,209.90 L194.36,210.67 L193.40,195.69 L186.75,209.14 L190.56,209.90 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,244.76 L190.56,209.90 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '197.17,166.07 200.88,167.56 202.70,152.24 193.46,164.59 197.17,166.07 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M197.17,166.07 L200.88,167.56 L202.70,152.24 L193.46,164.59 L197.17,166.07 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,200.01 L197.17,166.07 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '203.17,122.63 206.74,124.77 211.15,109.32 199.60,120.49 203.17,122.63 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M203.17,122.63 L206.74,124.77 L211.15,109.32 L199.60,120.49 L203.17,122.63 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,155.26 L203.17,122.63 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '208.52,79.34 211.92,82.07 218.68,66.64 205.11,76.62 208.52,79.34 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M208.52,79.34 L211.92,82.07 L218.68,66.64 L205.11,76.62 L208.52,79.34 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,110.51 L208.52,79.34 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '213.27,36.08 216.51,39.33 225.37,23.98 210.02,32.84 213.27,36.08 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M213.27,36.08 L216.51,39.33 L225.37,23.98 L210.02,32.84 L213.27,36.08 Z '/> <path stroke='rgb(148, 0, 211)' d='M183.59,65.76 L213.27,36.08 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '197.17,488.32 199.90,484.92 184.47,478.16 194.45,491.73 197.17,488.32 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M197.17,488.32 L199.90,484.92 L184.47,478.16 L194.45,491.73 L197.17,488.32 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,513.25 L197.17,488.32 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '201.84,442.00 204.74,439.11 191.04,431.20 198.95,444.90 201.84,442.00 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M201.84,442.00 L204.74,439.11 L191.04,431.20 L198.95,444.90 L201.84,442.00 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,468.50 L201.84,442.00 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '207.22,395.60 210.30,393.29 198.62,384.12 204.15,397.91 207.22,395.60 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M207.22,395.60 L210.30,393.29 L198.62,384.12 L204.15,397.91 L207.22,395.60 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,423.75 L207.22,395.60 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '213.47,349.27 216.72,347.65 207.41,337.15 210.22,350.90 213.47,349.27 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M213.47,349.27 L216.72,347.65 L207.41,337.15 L210.22,350.90 L213.47,349.27 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,379.00 L213.47,349.27 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '220.60,303.31 223.98,302.47 217.45,290.70 217.23,304.16 220.60,303.31 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M220.60,303.31 L223.98,302.47 L217.45,290.70 L217.23,304.16 L220.60,303.31 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,334.25 L220.60,303.31 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '228.34,258.10 231.77,258.10 228.34,245.30 224.91,258.10 228.34,258.10 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M228.34,258.10 L231.77,258.10 L228.34,245.30 L224.91,258.10 L228.34,258.10 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,289.50 L228.34,258.10 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '236.08,213.81 239.45,214.66 239.23,201.20 232.70,212.97 236.08,213.81 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M236.08,213.81 L239.45,214.66 L239.23,201.20 L232.70,212.97 L236.08,213.81 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,244.76 L236.08,213.81 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '243.21,170.27 246.46,171.90 249.27,158.15 239.96,168.65 243.21,170.27 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M243.21,170.27 L246.46,171.90 L249.27,158.15 L239.96,168.65 L243.21,170.27 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,200.01 L243.21,170.27 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '249.46,127.11 252.53,129.42 258.06,115.63 246.38,124.80 249.46,127.11 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M249.46,127.11 L252.53,129.42 L258.06,115.63 L246.38,124.80 L249.46,127.11 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,155.26 L249.46,127.11 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '254.84,84.01 257.73,86.91 265.64,73.21 251.94,81.12 254.84,84.01 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M254.84,84.01 L257.73,86.91 L265.64,73.21 L251.94,81.12 L254.84,84.01 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,110.51 L254.84,84.01 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '259.51,40.82 262.23,44.23 272.21,30.66 256.78,37.42 259.51,40.82 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M259.51,40.82 L262.23,44.23 L272.21,30.66 L256.78,37.42 L259.51,40.82 Z '/> <path stroke='rgb(148, 0, 211)' d='M228.34,65.76 L259.51,40.82 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '240.46,493.67 242.60,490.10 227.15,485.69 238.32,497.24 240.46,493.67 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M240.46,493.67 L242.60,490.10 L227.15,485.69 L238.32,497.24 L240.46,493.67 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,513.25 L240.46,493.67 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '244.94,447.38 247.25,444.31 233.46,438.78 242.63,450.46 244.94,447.38 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M244.94,447.38 L247.25,444.31 L233.46,438.78 L242.63,450.46 L244.94,447.38 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,468.50 L244.94,447.38 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '250.21,400.87 252.71,398.37 240.88,391.54 247.71,403.37 250.21,400.87 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M250.21,400.87 L252.71,398.37 L240.88,391.54 L247.71,403.37 L250.21,400.87 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,423.75 L250.21,400.87 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '256.57,354.22 259.28,352.42 249.84,344.13 253.86,356.03 256.57,354.22 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M256.57,354.22 L259.28,352.42 L249.84,344.13 L253.86,356.03 L256.57,354.22 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,379.00 L256.57,354.22 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '264.28,307.85 267.17,306.89 260.70,297.09 261.40,308.82 264.28,307.85 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M264.28,307.85 L267.17,306.89 L260.70,297.09 L261.40,308.82 L264.28,307.85 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,334.25 L264.28,307.85 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '273.09,262.42 276.04,262.42 273.09,251.38 270.14,262.42 273.09,262.42 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M273.09,262.42 L276.04,262.42 L273.09,251.38 L270.14,262.42 L273.09,262.42 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,289.50 L273.09,262.42 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '281.90,218.35 284.78,219.32 285.48,207.59 279.01,217.39 281.90,218.35 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M281.90,218.35 L284.78,219.32 L285.48,207.59 L279.01,217.39 L281.90,218.35 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,244.76 L281.90,218.35 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '289.60,175.24 292.31,177.04 296.33,165.14 286.89,173.44 289.60,175.24 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M289.60,175.24 L292.31,177.04 L296.33,165.14 L286.89,173.44 L289.60,175.24 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,200.01 L289.60,175.24 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '295.97,132.38 298.47,134.88 305.30,123.05 293.47,129.88 295.97,132.38 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M295.97,132.38 L298.47,134.88 L305.30,123.05 L293.47,129.88 L295.97,132.38 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,155.26 L295.97,132.38 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '301.24,89.39 303.55,92.47 312.72,80.79 298.93,86.32 301.24,89.39 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M301.24,89.39 L303.55,92.47 L312.72,80.79 L298.93,86.32 L301.24,89.39 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,110.51 L301.24,89.39 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '305.72,46.18 307.86,49.75 319.02,38.20 303.58,42.62 305.72,46.18 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M305.72,46.18 L307.86,49.75 L319.02,38.20 L303.58,42.62 L305.72,46.18 Z '/> <path stroke='rgb(148, 0, 211)' d='M273.09,65.76 L305.72,46.18 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '283.90,499.67 285.39,495.96 270.07,494.14 282.42,503.38 283.90,499.67 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M283.90,499.67 L285.39,495.96 L270.07,494.14 L282.42,503.38 L283.90,499.67 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,513.25 L283.90,499.67 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '288.10,453.63 289.73,450.38 275.98,447.57 286.48,456.88 288.10,453.63 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M288.10,453.63 L289.73,450.38 L275.98,447.57 L286.48,456.88 L288.10,453.63 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,468.50 L288.10,453.63 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '293.07,407.24 294.87,404.53 282.97,400.51 291.27,409.95 293.07,407.24 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M293.07,407.24 L294.87,404.53 L282.97,400.51 L291.27,409.95 L293.07,407.24 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,423.75 L293.07,407.24 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '299.26,360.42 301.29,358.39 291.69,352.85 297.23,362.45 299.26,360.42 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M299.26,360.42 L301.29,358.39 L291.69,352.85 L297.23,362.45 L299.26,360.42 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,379.00 L299.26,360.42 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '307.43,313.45 309.71,312.32 303.20,304.98 305.16,314.59 307.43,313.45 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M307.43,313.45 L309.71,312.32 L303.20,304.98 L305.16,314.59 L307.43,313.45 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,334.25 L307.43,313.45 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '317.84,267.57 320.23,267.57 317.84,258.63 315.45,267.57 317.84,267.57 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M317.84,267.57 L320.23,267.57 L317.84,258.63 L315.45,267.57 L317.84,267.57 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,289.50 L317.84,267.57 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '328.25,223.96 330.52,225.10 332.48,215.48 325.97,222.82 328.25,223.96 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M328.25,223.96 L330.52,225.10 L332.48,215.48 L325.97,222.82 L328.25,223.96 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,244.76 L328.25,223.96 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '336.42,181.43 338.45,183.46 343.99,173.86 334.39,179.40 336.42,181.43 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M336.42,181.43 L338.45,183.46 L343.99,173.86 L334.39,179.40 L336.42,181.43 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,200.01 L336.42,181.43 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '342.62,138.74 344.42,141.45 352.71,132.01 340.81,136.03 342.62,138.74 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M342.62,138.74 L344.42,141.45 L352.71,132.01 L340.81,136.03 L342.62,138.74 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,155.26 L342.62,138.74 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '347.57,95.64 349.19,98.89 359.69,89.58 345.94,92.39 347.57,95.64 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M347.57,95.64 L349.19,98.89 L359.69,89.58 L345.94,92.39 L347.57,95.64 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,110.51 L347.57,95.64 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '351.77,52.18 353.25,55.89 365.60,46.65 350.28,48.47 351.77,52.18 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M351.77,52.18 L353.25,55.89 L365.60,46.65 L350.28,48.47 L351.77,52.18 Z '/> <path stroke='rgb(148, 0, 211)' d='M317.84,65.76 L351.77,52.18 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '327.73,506.28 328.50,502.48 313.52,503.44 326.97,510.09 327.73,506.28 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M327.73,506.28 L328.50,502.48 L313.52,503.44 L326.97,510.09 L327.73,506.28 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,513.25 L327.73,506.28 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '331.64,460.76 332.49,457.39 319.03,457.61 330.80,464.14 331.64,460.76 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M331.64,460.76 L332.49,457.39 L319.03,457.61 L330.80,464.14 L331.64,460.76 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,468.50 L331.64,460.76 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '336.18,414.94 337.15,412.06 325.42,411.36 335.22,417.83 336.18,414.94 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M336.18,414.94 L337.15,412.06 L325.42,411.36 L335.22,417.83 L336.18,414.94 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,423.75 L336.18,414.94 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '341.79,368.59 342.93,366.32 333.31,364.36 340.65,370.87 341.79,368.59 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M341.79,368.59 L342.93,366.32 L333.31,364.36 L340.65,370.87 L341.79,368.59 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,379.00 L341.79,368.59 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '349.66,321.33 351.08,319.92 344.40,316.07 348.25,322.75 349.66,321.33 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M349.66,321.33 L351.08,319.92 L344.40,316.07 L348.25,322.75 L349.66,321.33 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,334.25 L349.66,321.33 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '362.59,274.35 364.24,274.35 362.59,268.17 360.94,274.35 362.59,274.35 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M362.59,274.35 L364.24,274.35 L362.59,268.17 L360.94,274.35 L362.59,274.35 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,289.50 L362.59,274.35 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '375.51,231.83 376.92,233.25 380.77,226.57 374.09,230.42 375.51,231.83 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M375.51,231.83 L376.92,233.25 L380.77,226.57 L374.09,230.42 L375.51,231.83 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,244.76 L375.51,231.83 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '383.39,189.60 384.52,191.88 391.86,185.37 382.25,187.33 383.39,189.60 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M383.39,189.60 L384.52,191.88 L391.86,185.37 L382.25,187.33 L383.39,189.60 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,200.01 L383.39,189.60 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '388.99,146.45 389.95,149.34 399.75,142.87 388.02,143.57 388.99,146.45 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M388.99,146.45 L389.95,149.34 L399.75,142.87 L388.02,143.57 L388.99,146.45 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,155.26 L388.99,146.45 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '393.53,102.77 394.37,106.15 406.14,99.62 392.68,99.40 393.53,102.77 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M393.53,102.77 L394.37,106.15 L406.14,99.62 L392.68,99.40 L393.53,102.77 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,110.51 L393.53,102.77 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '397.44,58.79 398.20,62.60 411.65,55.95 396.68,54.99 397.44,58.79 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M397.44,58.79 L398.20,62.60 L411.65,55.95 L396.68,54.99 L397.44,58.79 Z '/> <path stroke='rgb(148, 0, 211)' d='M362.59,65.76 L397.44,58.79 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '372.15,513.25 372.15,509.41 357.80,513.25 372.15,517.09 372.15,513.25 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M372.15,513.25 L372.15,509.41 L357.80,513.25 L372.15,517.09 L372.15,513.25 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,513.25 L372.15,513.25 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '375.94,468.50 375.94,465.07 363.13,468.50 375.94,471.93 375.94,468.50 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M375.94,468.50 L375.94,465.07 L363.13,468.50 L375.94,471.93 L375.94,468.50 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,468.50 L375.94,468.50 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '380.25,423.75 380.25,420.79 369.21,423.75 380.25,426.71 380.25,423.75 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M380.25,423.75 L380.25,420.79 L369.21,423.75 L380.25,426.71 L380.25,423.75 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,423.75 L380.25,423.75 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '385.40,379.00 385.40,376.61 376.46,379.00 385.40,381.39 385.40,379.00 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M385.40,379.00 L385.40,376.61 L376.46,379.00 L385.40,381.39 L385.40,379.00 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,379.00 L385.40,379.00 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '392.18,334.25 392.18,332.60 386.00,334.25 392.18,335.90 392.18,334.25 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M392.18,334.25 L392.18,332.60 L386.00,334.25 L392.18,335.90 L392.18,334.25 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,334.25 L392.18,334.25 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '422.49,244.76 422.49,246.41 428.67,244.76 422.49,243.11 422.49,244.76 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M422.49,244.76 L422.49,246.41 L428.67,244.76 L422.49,243.11 L422.49,244.76 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,244.76 L422.49,244.76 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '429.27,200.01 429.27,202.40 438.21,200.01 429.27,197.62 429.27,200.01 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M429.27,200.01 L429.27,202.40 L438.21,200.01 L429.27,197.62 L429.27,200.01 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,200.01 L429.27,200.01 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '434.42,155.26 434.42,158.21 445.46,155.26 434.42,152.31 434.42,155.26 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M434.42,155.26 L434.42,158.21 L445.46,155.26 L434.42,152.31 L434.42,155.26 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,155.26 L434.42,155.26 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '438.74,110.51 438.74,113.94 451.54,110.51 438.74,107.08 438.74,110.51 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M438.74,110.51 L438.74,113.94 L451.54,110.51 L438.74,107.08 L438.74,110.51 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,110.51 L438.74,110.51 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '442.52,65.76 442.52,69.60 456.87,65.76 442.52,61.92 442.52,65.76 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M442.52,65.76 L442.52,69.60 L456.87,65.76 L442.52,61.92 L442.52,65.76 Z '/> <path stroke='rgb(148, 0, 211)' d='M407.34,65.76 L442.52,65.76 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '417.23,520.22 416.47,516.41 403.02,523.06 417.99,524.02 417.23,520.22 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M417.23,520.22 L416.47,516.41 L403.02,523.06 L417.99,524.02 L417.23,520.22 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,513.25 L417.23,520.22 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '421.14,476.24 420.30,472.86 408.53,479.39 421.99,479.61 421.14,476.24 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M421.14,476.24 L420.30,472.86 L408.53,479.39 L421.99,479.61 L421.14,476.24 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,468.50 L421.14,476.24 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '425.68,432.56 424.72,429.67 414.92,436.14 426.65,435.44 425.68,432.56 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M425.68,432.56 L424.72,429.67 L414.92,436.14 L426.65,435.44 L425.68,432.56 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,423.75 L425.68,432.56 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '431.28,389.41 430.15,387.13 422.81,393.64 432.42,391.68 431.28,389.41 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M431.28,389.41 L430.15,387.13 L422.81,393.64 L432.42,391.68 L431.28,389.41 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,379.00 L431.28,389.41 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '439.16,347.18 437.75,345.76 433.90,352.44 440.58,348.59 439.16,347.18 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M439.16,347.18 L437.75,345.76 L433.90,352.44 L440.58,348.59 L439.16,347.18 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,334.25 L439.16,347.18 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '452.08,304.66 450.43,304.66 452.08,310.84 453.73,304.66 452.08,304.66 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M452.08,304.66 L450.43,304.66 L452.08,310.84 L453.73,304.66 L452.08,304.66 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,289.50 L452.08,304.66 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '465.01,257.68 463.59,259.09 470.27,262.94 466.42,256.26 465.01,257.68 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M465.01,257.68 L463.59,259.09 L470.27,262.94 L466.42,256.26 L465.01,257.68 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,244.76 L465.01,257.68 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '472.88,210.42 471.74,212.69 481.36,214.65 474.02,208.14 472.88,210.42 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M472.88,210.42 L471.74,212.69 L481.36,214.65 L474.02,208.14 L472.88,210.42 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,200.01 L472.88,210.42 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '478.49,164.07 477.52,166.95 489.25,167.65 479.45,161.18 478.49,164.07 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M478.49,164.07 L477.52,166.95 L489.25,167.65 L479.45,161.18 L478.49,164.07 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,155.26 L478.49,164.07 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '483.03,118.25 482.18,121.62 495.64,121.40 483.87,114.87 483.03,118.25 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M483.03,118.25 L482.18,121.62 L495.64,121.40 L483.87,114.87 L483.03,118.25 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,110.51 L483.03,118.25 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '486.94,72.73 486.17,76.53 501.15,75.57 487.70,68.92 486.94,72.73 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M486.94,72.73 L486.17,76.53 L501.15,75.57 L487.70,68.92 L486.94,72.73 Z '/> <path stroke='rgb(148, 0, 211)' d='M452.08,65.76 L486.94,72.73 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '462.90,526.83 461.42,523.12 449.07,532.36 464.39,530.54 462.90,526.83 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M462.90,526.83 L461.42,523.12 L449.07,532.36 L464.39,530.54 L462.90,526.83 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,513.25 L462.90,526.83 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '467.10,483.37 465.48,480.12 454.98,489.43 468.73,486.62 467.10,483.37 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M467.10,483.37 L465.48,480.12 L454.98,489.43 L468.73,486.62 L467.10,483.37 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,468.50 L467.10,483.37 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '472.05,440.27 470.25,437.56 461.96,447.00 473.86,442.98 472.05,440.27 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M472.05,440.27 L470.25,437.56 L461.96,447.00 L473.86,442.98 L472.05,440.27 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,423.75 L472.05,440.27 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '478.25,397.58 476.22,395.55 470.68,405.15 480.28,399.61 478.25,397.58 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M478.25,397.58 L476.22,395.55 L470.68,405.15 L480.28,399.61 L478.25,397.58 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,379.00 L478.25,397.58 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '486.42,355.05 484.15,353.91 482.19,363.53 488.70,356.19 486.42,355.05 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M486.42,355.05 L484.15,353.91 L482.19,363.53 L488.70,356.19 L486.42,355.05 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,334.25 L486.42,355.05 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '496.83,311.44 494.44,311.44 496.83,320.38 499.22,311.44 496.83,311.44 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M496.83,311.44 L494.44,311.44 L496.83,320.38 L499.22,311.44 L496.83,311.44 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,289.50 L496.83,311.44 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '507.24,265.56 504.96,266.69 511.47,274.03 509.51,264.42 507.24,265.56 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M507.24,265.56 L504.96,266.69 L511.47,274.03 L509.51,264.42 L507.24,265.56 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,244.76 L507.24,265.56 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '515.41,218.59 513.38,220.62 522.98,226.16 517.44,216.56 515.41,218.59 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M515.41,218.59 L513.38,220.62 L522.98,226.16 L517.44,216.56 L515.41,218.59 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,200.01 L515.41,218.59 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '521.60,171.77 519.80,174.48 531.70,178.50 523.40,169.06 521.60,171.77 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M521.60,171.77 L519.80,174.48 L531.70,178.50 L523.40,169.06 L521.60,171.77 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,155.26 L521.60,171.77 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '526.57,125.38 524.94,128.63 538.69,131.44 528.19,122.13 526.57,125.38 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M526.57,125.38 L524.94,128.63 L538.69,131.44 L528.19,122.13 L526.57,125.38 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,110.51 L526.57,125.38 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '530.77,79.34 529.28,83.05 544.60,84.87 532.25,75.63 530.77,79.34 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M530.77,79.34 L529.28,83.05 L544.60,84.87 L532.25,75.63 L530.77,79.34 Z '/> <path stroke='rgb(148, 0, 211)' d='M496.83,65.76 L530.77,79.34 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '508.95,532.83 506.81,529.26 495.65,540.81 511.09,536.39 508.95,532.83 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M508.95,532.83 L506.81,529.26 L495.65,540.81 L511.09,536.39 L508.95,532.83 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,513.25 L508.95,532.83 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '513.43,489.62 511.12,486.54 501.95,498.22 515.74,492.69 513.43,489.62 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M513.43,489.62 L511.12,486.54 L501.95,498.22 L515.74,492.69 L513.43,489.62 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,468.50 L513.43,489.62 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '518.70,446.63 516.20,444.13 509.37,455.96 521.20,449.13 518.70,446.63 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M518.70,446.63 L516.20,444.13 L509.37,455.96 L521.20,449.13 L518.70,446.63 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,423.75 L518.70,446.63 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '525.07,403.77 522.36,401.97 518.34,413.87 527.78,405.57 525.07,403.77 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M525.07,403.77 L522.36,401.97 L518.34,413.87 L527.78,405.57 L525.07,403.77 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,379.00 L525.07,403.77 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '532.77,360.66 529.89,359.69 529.19,371.42 535.66,361.62 532.77,360.66 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M532.77,360.66 L529.89,359.69 L529.19,371.42 L535.66,361.62 L532.77,360.66 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,334.25 L532.77,360.66 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '541.58,316.59 538.62,316.59 541.58,327.63 544.54,316.59 541.58,316.59 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M541.58,316.59 L538.62,316.59 L541.58,327.63 L544.54,316.59 L541.58,316.59 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,289.50 L541.58,316.59 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '550.39,271.16 547.50,272.12 553.97,281.92 553.27,270.19 550.39,271.16 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M550.39,271.16 L547.50,272.12 L553.97,281.92 L553.27,270.19 L550.39,271.16 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,244.76 L550.39,271.16 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '558.10,224.79 555.39,226.59 564.83,234.88 560.81,222.98 558.10,224.79 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M558.10,224.79 L555.39,226.59 L564.83,234.88 L560.81,222.98 L558.10,224.79 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,200.01 L558.10,224.79 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '564.46,178.14 561.96,180.64 573.79,187.47 566.96,175.64 564.46,178.14 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M564.46,178.14 L561.96,180.64 L573.79,187.47 L566.96,175.64 L564.46,178.14 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,155.26 L564.46,178.14 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '569.73,131.63 567.42,134.70 581.21,140.23 572.04,128.55 569.73,131.63 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M569.73,131.63 L567.42,134.70 L581.21,140.23 L572.04,128.55 L569.73,131.63 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,110.51 L569.73,131.63 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '574.21,85.34 572.07,88.91 587.52,93.32 576.35,81.77 574.21,85.34 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M574.21,85.34 L572.07,88.91 L587.52,93.32 L576.35,81.77 L574.21,85.34 Z '/> <path stroke='rgb(148, 0, 211)' d='M541.58,65.76 L574.21,85.34 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '555.16,538.19 552.44,534.78 542.46,548.35 557.89,541.59 555.16,538.19 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M555.16,538.19 L552.44,534.78 L542.46,548.35 L557.89,541.59 L555.16,538.19 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,513.25 L555.16,538.19 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '559.83,495.00 556.94,492.10 549.03,505.80 562.73,497.89 559.83,495.00 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M559.83,495.00 L556.94,492.10 L549.03,505.80 L562.73,497.89 L559.83,495.00 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,468.50 L559.83,495.00 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '565.21,451.90 562.14,449.59 556.61,463.38 568.29,454.21 565.21,451.90 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M565.21,451.90 L562.14,449.59 L556.61,463.38 L568.29,454.21 L565.21,451.90 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,423.75 L565.21,451.90 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '571.46,408.74 568.21,407.11 565.40,420.86 574.71,410.36 571.46,408.74 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M571.46,408.74 L568.21,407.11 L565.40,420.86 L574.71,410.36 L571.46,408.74 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,379.00 L571.46,408.74 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '578.59,365.20 575.22,364.35 575.44,377.81 581.97,366.04 578.59,365.20 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M578.59,365.20 L575.22,364.35 L575.44,377.81 L581.97,366.04 L578.59,365.20 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,334.25 L578.59,365.20 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '586.33,320.90 582.90,320.90 586.33,333.71 589.76,320.90 586.33,320.90 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M586.33,320.90 L582.90,320.90 L586.33,333.71 L589.76,320.90 L586.33,320.90 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,289.50 L586.33,320.90 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '594.07,275.70 590.69,276.54 597.22,288.31 597.44,274.85 594.07,275.70 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M594.07,275.70 L590.69,276.54 L597.22,288.31 L597.44,274.85 L594.07,275.70 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,244.76 L594.07,275.70 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '601.20,229.74 597.95,231.36 607.26,241.86 604.45,228.11 601.20,229.74 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M601.20,229.74 L597.95,231.36 L607.26,241.86 L604.45,228.11 L601.20,229.74 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,200.01 L601.20,229.74 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '607.45,183.41 604.37,185.72 616.05,194.89 610.52,181.10 607.45,183.41 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M607.45,183.41 L604.37,185.72 L616.05,194.89 L610.52,181.10 L607.45,183.41 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,155.26 L607.45,183.41 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '612.83,137.01 609.93,139.90 623.63,147.81 615.72,134.11 612.83,137.01 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M612.83,137.01 L609.93,139.90 L623.63,147.81 L615.72,134.11 L612.83,137.01 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,110.51 L612.83,137.01 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '617.50,90.69 614.77,94.09 630.20,100.85 620.22,87.28 617.50,90.69 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M617.50,90.69 L614.77,94.09 L630.20,100.85 L620.22,87.28 L617.50,90.69 Z '/> <path stroke='rgb(148, 0, 211)' d='M586.33,65.76 L617.50,90.69 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '601.40,542.93 598.16,539.68 589.30,555.03 604.65,546.17 601.40,542.93 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M601.40,542.93 L598.16,539.68 L589.30,555.03 L604.65,546.17 L601.40,542.93 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,513.25 L601.40,542.93 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '606.15,499.67 602.75,496.94 595.99,512.37 609.56,502.39 606.15,499.67 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M606.15,499.67 L602.75,496.94 L595.99,512.37 L609.56,502.39 L606.15,499.67 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,468.50 L606.15,499.67 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '611.50,456.38 607.93,454.24 603.52,469.69 615.07,458.52 611.50,456.38 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M611.50,456.38 L607.93,454.24 L603.52,469.69 L615.07,458.52 L611.50,456.38 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,423.75 L611.50,456.38 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '617.50,412.94 613.79,411.45 611.97,426.77 621.21,414.42 617.50,412.94 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M617.50,412.94 L613.79,411.45 L611.97,426.77 L621.21,414.42 L617.50,412.94 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,379.00 L617.50,412.94 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '624.11,369.11 620.31,368.34 621.27,383.32 627.92,369.87 624.11,369.11 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M624.11,369.11 L620.31,368.34 L621.27,383.32 L627.92,369.87 L624.11,369.11 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,334.25 L624.11,369.11 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '631.08,324.69 627.24,324.69 631.08,339.04 634.92,324.69 631.08,324.69 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M631.08,324.69 L627.24,324.69 L631.08,339.04 L634.92,324.69 L631.08,324.69 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,289.50 L631.08,324.69 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '638.05,279.61 634.24,280.37 640.89,293.82 641.85,278.85 638.05,279.61 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M638.05,279.61 L634.24,280.37 L640.89,293.82 L641.85,278.85 L638.05,279.61 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,244.76 L638.05,279.61 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '644.66,233.94 640.95,235.42 650.19,247.77 648.37,232.45 644.66,233.94 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M644.66,233.94 L640.95,235.42 L650.19,247.77 L648.37,232.45 L644.66,233.94 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,200.01 L644.66,233.94 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '650.66,187.89 647.09,190.03 658.64,201.19 654.22,185.75 650.66,187.89 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M650.66,187.89 L647.09,190.03 L658.64,201.19 L654.22,185.75 L650.66,187.89 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,155.26 L650.66,187.89 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '656.02,141.68 652.61,144.40 666.18,154.38 659.42,138.95 656.02,141.68 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M656.02,141.68 L652.61,144.40 L666.18,154.38 L659.42,138.95 L656.02,141.68 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,110.51 L656.02,141.68 '/> <g stroke='none' shape-rendering='crispEdges'>
<polygon fill = 'rgb(148, 0, 211)' points = '660.76,95.44 657.51,98.68 672.86,107.54 664.00,92.19 660.76,95.44 '/>
</g>
<path stroke='rgb(148, 0, 211)' d='M660.76,95.44 L657.51,98.68 L672.86,107.54 L664.00,92.19 L660.76,95.44 Z '/> <path stroke='rgb(148, 0, 211)' d='M631.08,65.76 L660.76,95.44 '/></g>
</g>
<g fill="none" color="white" stroke="rgb(148, 0, 211)" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M138.84,21.01 L138.84,558.00 L675.83,558.00 L675.83,21.01 L138.84,21.01 Z '/></g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -326,7 +326,7 @@ SKIP:
# the host machine can cause a test failure. It's fine pretty much all the
# time on my not-too-new laptop, but this is bad for automated testing
skip "Skipping unreliable tests. Set RUN_ALL_TESTS environment variable to run them all", 18 unless $ENV{RUN_ALL_TESTS};
skip "Skipping unreliable tests. Set RUN_ALL_TESTS environment variable to run them all", 20 unless $ENV{RUN_ALL_TESTS};
tryplot( testname => 'Histogram plot',