Compare commits

...

5 Commits

Author SHA1 Message Date
Dima Kogan
d57634bcf9 website documentation doesn't say it's making ascii art
because that documentation shows a graphical image
2024-02-19 21:38:53 -08:00
Dima Kogan
6340dd3582 documentation 2024-02-19 21:27:59 -08:00
Dima Kogan
2d8344f32d README.pod contains graphical images for the website 2024-02-19 21:27:59 -08:00
Dima Kogan
2db7f980b5 Nicer sample plots in the docs 2024-02-19 21:26:05 -08:00
Dima Kogan
96ac271cda I explicitly ignore all lines that have '-' values
These may come from vnl-filter -p "dx=diff(x)" ... output. For instance, this
plot is broken before this patch:

  (echo '# x'; seq 5) | vnl-filter --noskipempty -p 'd=diff(x)' \
  | feedgnuplot --lines
2024-01-27 17:01:40 -08:00
6 changed files with 521 additions and 94 deletions

11
Changes
View File

@ -1,3 +1,14 @@
feedgnuplot (1.62)
* I explicitly ignore all lines that have '-' values
These may come from vnl-filter -p "dx=diff(x)" ... output. For instance, this
plot is broken before this patch:
(echo '# x'; seq 5) | vnl-filter --noskipempty -p 'd=diff(x)' \
| feedgnuplot --lines
-- Dima Kogan <dkogan@debian.org> Sat, 27 Jan 2024 17:01:18 -0800
feedgnuplot (1.61)
* #! line uses /usr/bin/env to work with nonstandard installations

View File

@ -21,56 +21,36 @@ Simple plotting of piped data:
10 25
$ seq 5 | awk '{print 2*$1, $1*$1}' |
feedgnuplot --lines --points --legend 0 "data 0" --title "Test plot" --y2 1
--unset grid --terminal 'dumb 80,40' --exit
feedgnuplot \
--lines \
--points \
--title "Test plot" \
--y2 1 \
--unset key \
--unset grid
Test plot
10 +-----------------------------------------------------------------+ 25
| + + + + + + + *##|
| data 0 ***A*#* |
| ** # |
9 |-+ ** ## |
| ** # |
| ** # |
| ** ## +-| 20
8 |-+ A # |
| ** # |
| ** ## |
| ** # |
| ** B |
7 |-+ ** ## |
| ** ## +-| 15
| ** # |
| ** ## |
6 |-+ *A ## |
| ** ## |
| ** # |
| ** ## +-| 10
5 |-+ ** ## |
| ** #B |
| ** ## |
| ** ## |
4 |-+ A ### |
| ** ## |
| ** ## +-| 5
| ** ## |
| ** ##B# |
3 |-+ ** #### |
| **#### |
| #### |
|## + + + + + + + |
2 +-----------------------------------------------------------------+ 0
1 1.5 2 2.5 3 3.5 4 4.5 5
Here we asked for ASCII plotting, which is useful for documentation.
=for html <p><img src="documentation-header-plot.svg">
Simple real-time plotting example: plot how much data is received on the wlan0
network interface in bytes/second (uses bash, awk and Linux):
network interface in bytes/second. This plot updates at 1Hz, and shows the last
10sec of history. The plot shown here is the final state of a sample run
$ while true; do sleep 1; cat /proc/net/dev; done |
gawk '/wlan0/ {if(b) {print $2-b; fflush()} b=$2}' |
feedgnuplot --lines --stream --xlen 10 --ylabel 'Bytes/sec' --xlabel seconds
$ while true; do
sleep 1;
cat /proc/net/dev;
done \
| gawk '/wlan0/ {if(b) {print $2-b; N++; fflush()} b=$2} N==15 {exit}' \
| feedgnuplot \
--lines \
--title "wlan0 throughput" \
--stream \
--xlen 10 \
--ylabel 'Bytes/sec' \
--xlabel seconds \
--unset key \
--unset grid
=for html <p><img src="documentation-header-network-throughput-plot.svg">
=head1 DESCRIPTION
@ -533,9 +513,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
@ -612,10 +599,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

@ -16,7 +16,7 @@ use Pod::Usage;
use Time::Piece;
# Makefile.PL assumes this is in ''
my $VERSION = '1.61';
my $VERSION = '1.62';
my %options;
interpretCommandline();
@ -780,6 +780,12 @@ sub mainThread
$options{curvestyleall} = "with circles $options{curvestyleall}";
}
# Required to ignore all lines that have '-' values, such as may come from
# vnl-filter -p "dx=diff(x)" ... output. For instance, this plot is broken
# without this extra line:
# (echo '# x'; seq 5) | vnl-filter --noskipempty -p 'd=diff(x)' | ./feedgnuplot --lines
print PIPE "set datafile missing \"-\"\n";
print PIPE "set style data $style\n" if $style;
print PIPE "set grid\n";
@ -1414,56 +1420,110 @@ Simple plotting of piped data:
10 25
$ seq 5 | awk '{print 2*$1, $1*$1}' |
feedgnuplot --lines --points --legend 0 "data 0" --title "Test plot" --y2 1
--unset grid --terminal 'dumb 80,40' --exit
feedgnuplot \
--terminal 'dumb 80,40' --exit \
--lines \
--points \
--title "Test plot" \
--y2 1 \
--unset key \
--unset grid
Test plot
10 +-----------------------------------------------------------------+ 25
| + + + + + + + *##|
| data 0 ***A*#* |
| ** # |
9 |-+ ** ## |
| ** # |
| ** # |
| ** ## +-| 20
8 |-+ A # |
| ** # |
| ** ## |
| ** # |
| ** B |
7 |-+ ** ## |
| ** ## +-| 15
| ** # |
| ** ## |
6 |-+ *A ## |
| ** ## |
| ** # |
| ** ## +-| 10
5 |-+ ** ## |
| ** #B |
| ** ## |
| ** ## |
4 |-+ A ### |
| ** ## |
| ** ## +-| 5
| ** ## |
| ** ##B# |
3 |-+ ** #### |
| **#### |
| #### |
| + + + + + + + ##*|
| ##* |
| ## * |
9 |-+ ## ** |
| ## * |
| ## * |
| ## ** +-| 20
8 |-+ B * |
| ## * |
| ## ** |
| ## * |
| ## A |
7 |-+ ## ** |
| ## ** +-| 15
| ## * |
| ## ** |
6 |-+ #B ** |
| ## ** |
| ## * |
| ## ** +-| 10
5 |-+ ## ** |
| ## *A |
| ## ** |
| ## ** |
4 |-+ B *** |
| ## ** |
| ## ** +-| 5
| ## ** |
| ## **A* |
3 |-+ ## **** |
| ##**** |
| ##** |
|## + + + + + + + |
2 +-----------------------------------------------------------------+ 0
1 1.5 2 2.5 3 3.5 4 4.5 5
Here we asked for ASCII plotting, which is useful for documentation.
Simple real-time plotting example: plot how much data is received on the wlan0
network interface in bytes/second (uses bash, awk and Linux):
network interface in bytes/second. This plot updates at 1Hz, and shows the last
10sec of history. The plot shown here is the final state of a sample run
$ while true; do sleep 1; cat /proc/net/dev; done |
gawk '/wlan0/ {if(b) {print $2-b; fflush()} b=$2}' |
feedgnuplot --lines --stream --xlen 10 --ylabel 'Bytes/sec' --xlabel seconds
$ while true; do
sleep 1;
cat /proc/net/dev;
done \
| gawk '/wlan0/ {if(b) {print $2-b; N++; fflush()} b=$2} N==15 {exit}' \
| feedgnuplot \
--terminal 'dumb 80,40' --exit \
--lines \
--title "wlan0 throughput" \
--stream \
--xlen 10 \
--ylabel 'Bytes/sec' \
--xlabel seconds \
--unset key \
--unset grid
wlan0 throughput
300000 +---------------------------------------------------------------+
| + + + + + |
| |
| |
| * |
250000 |-+ * +-|
| ** |
| * * |
| * * |
| * * |
| * * |
200000 |-+ * * +-|
| * * |
| * * |
| * * |
| * * |
150000 |-+ * *+-|
| * * |
| * * |
| * * |
| * * |
| * * |
100000 |-+ * *-|
| * * |
| * *|
| ** * *|
| *** * * *|
50000 |-+ *** * **** * +*|
| ** ** ***** ** * |
| ** * *** ** * |
| ***** * ***** ** |
|** *** |
| + + + + + |
0 +---------------------------------------------------------------+
6 8 10 12 14
seconds
=head1 DESCRIPTION

View File

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<svg
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 6.1 patchlevel 0 </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">
<path stroke='black' d='M114.00,532.80 L124.50,532.80 M770.62,532.80 L760.12,532.80 '/> <g transform="translate(104.21,537.35)" 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">
<path stroke='black' d='M114.00,454.50 L124.50,454.50 M770.62,454.50 L760.12,454.50 '/> <g transform="translate(104.21,459.05)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 50000</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M114.00,376.20 L124.50,376.20 M770.62,376.20 L760.12,376.20 '/> <g transform="translate(104.21,380.75)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 100000</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M114.00,297.90 L124.50,297.90 M770.62,297.90 L760.12,297.90 '/> <g transform="translate(104.21,302.45)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 150000</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M114.00,219.61 L124.50,219.61 M770.62,219.61 L760.12,219.61 '/> <g transform="translate(104.21,224.16)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 200000</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M114.00,141.31 L124.50,141.31 M770.62,141.31 L760.12,141.31 '/> <g transform="translate(104.21,145.86)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 250000</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M114.00,63.01 L124.50,63.01 M770.62,63.01 L760.12,63.01 '/> <g transform="translate(104.21,67.56)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 300000</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M179.66,532.80 L179.66,522.30 M179.66,63.01 L179.66,73.51 '/> <g transform="translate(179.66,558.35)" 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">
<path stroke='black' d='M310.99,532.80 L310.99,522.30 M310.99,63.01 L310.99,73.51 '/> <g transform="translate(310.99,558.35)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 8</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M442.31,532.80 L442.31,522.30 M442.31,63.01 L442.31,73.51 '/> <g transform="translate(442.31,558.35)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 10</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M573.63,532.80 L573.63,522.30 M573.63,63.01 L573.63,73.51 '/> <g transform="translate(573.63,558.35)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 12</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M704.96,532.80 L704.96,522.30 M704.96,63.01 L704.96,73.51 '/> <g transform="translate(704.96,558.35)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 14</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='M114.00,63.01 L114.00,532.80 L770.62,532.80 L770.62,63.01 L114.00,63.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" fill="none"><title>gnuplot_plot_1</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb(148, 0, 211)' d='M114.00,501.01 L179.66,485.53 L245.32,440.28 L310.99,424.13 L376.65,501.11 L442.31,485.75 L507.97,460.08 L573.63,443.50
L639.30,496.07 L704.96,118.85 L770.62,494.86 '/></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='M114.00,63.01 L114.00,532.80 L770.62,532.80 L770.62,63.01 L114.00,63.01 Z '/> <g transform="translate(22.38,297.91) rotate(270.00)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text>Bytes/sec</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<g transform="translate(442.31,589.85)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text>seconds</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">
<g transform="translate(442.31,36.06)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text>wlan0 throughput</text>
</g>
</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: 9.0 KiB

View File

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<svg
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 6.1 patchlevel 0 </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">
<path stroke='black' d='M53.84,558.00 L64.34,558.00 '/> <g transform="translate(44.05,562.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">
<path stroke='black' d='M53.84,496.13 L64.34,496.13 '/> <g transform="translate(44.05,500.68)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 3</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M53.84,434.25 L64.34,434.25 '/> <g transform="translate(44.05,438.80)" 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">
<path stroke='black' d='M53.84,372.38 L64.34,372.38 '/> <g transform="translate(44.05,376.93)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 5</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M53.84,310.50 L64.34,310.50 '/> <g transform="translate(44.05,315.05)" 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">
<path stroke='black' d='M53.84,248.63 L64.34,248.63 '/> <g transform="translate(44.05,253.18)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 7</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M53.84,186.76 L64.34,186.76 '/> <g transform="translate(44.05,191.31)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 8</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M53.84,124.88 L64.34,124.88 '/> <g transform="translate(44.05,129.43)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 9</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M53.84,63.01 L64.34,63.01 '/> <g transform="translate(44.05,67.56)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="end">
<text> 10</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M53.84,558.00 L53.84,547.50 M53.84,63.01 L53.84,73.51 '/> <g transform="translate(53.84,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 1</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M137.32,558.00 L137.32,547.50 M137.32,63.01 L137.32,73.51 '/> <g transform="translate(137.32,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 1.5</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M220.80,558.00 L220.80,547.50 M220.80,63.01 L220.80,73.51 '/> <g transform="translate(220.80,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">
<path stroke='black' d='M304.28,558.00 L304.28,547.50 M304.28,63.01 L304.28,73.51 '/> <g transform="translate(304.28,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 2.5</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M387.76,558.00 L387.76,547.50 M387.76,63.01 L387.76,73.51 '/> <g transform="translate(387.76,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 3</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M471.23,558.00 L471.23,547.50 M471.23,63.01 L471.23,73.51 '/> <g transform="translate(471.23,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 3.5</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M554.71,558.00 L554.71,547.50 M554.71,63.01 L554.71,73.51 '/> <g transform="translate(554.71,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">
<path stroke='black' d='M638.19,558.00 L638.19,547.50 M638.19,63.01 L638.19,73.51 '/> <g transform="translate(638.19,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 4.5</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M721.67,558.00 L721.67,547.50 M721.67,63.01 L721.67,73.51 '/> <g transform="translate(721.67,583.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text> 5</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M721.67,558.00 L711.17,558.00 '/> <g transform="translate(731.46,562.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="start">
<text> 0</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M721.67,459.00 L711.17,459.00 '/> <g transform="translate(731.46,463.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="start">
<text> 5</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M721.67,360.00 L711.17,360.00 '/> <g transform="translate(731.46,364.55)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="start">
<text> 10</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M721.67,261.01 L711.17,261.01 '/> <g transform="translate(731.46,265.56)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="start">
<text> 15</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M721.67,162.01 L711.17,162.01 '/> <g transform="translate(731.46,166.56)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="start">
<text> 20</text>
</g>
</g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='black' d='M721.67,63.01 L711.17,63.01 '/> <g transform="translate(731.46,67.56)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="start">
<text> 25</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='M53.84,63.01 L53.84,558.00 L721.67,558.00 L721.67,63.01 L53.84,63.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" fill="none"><title>gnuplot_plot_1</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb(148, 0, 211)' d='M53.84,538.20 L220.80,478.80 L387.76,379.80 L554.71,241.21 L721.67,63.01 '/> <use xlink:href='#gpPt0' transform='translate(53.84,538.20) scale(5.25)' color='rgb(148, 0, 211)'/>
<use xlink:href='#gpPt0' transform='translate(220.80,478.80) scale(5.25)' color='rgb(148, 0, 211)'/>
<use xlink:href='#gpPt0' transform='translate(387.76,379.80) scale(5.25)' color='rgb(148, 0, 211)'/>
<use xlink:href='#gpPt0' transform='translate(554.71,241.21) scale(5.25)' color='rgb(148, 0, 211)'/>
<use xlink:href='#gpPt0' transform='translate(721.67,63.01) scale(5.25)' color='rgb(148, 0, 211)'/>
</g>
</g>
<g id="gnuplot_plot_2" fill="none"><title>gnuplot_plot_2</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<path stroke='rgb( 0, 158, 115)' d='M53.84,558.00 L220.80,434.25 L387.76,310.50 L554.71,186.76 L721.67,63.01 '/> <use xlink:href='#gpPt1' transform='translate(53.84,558.00) scale(5.25)' color='rgb( 0, 158, 115)'/>
<use xlink:href='#gpPt1' transform='translate(220.80,434.25) scale(5.25)' color='rgb( 0, 158, 115)'/>
<use xlink:href='#gpPt1' transform='translate(387.76,310.50) scale(5.25)' color='rgb( 0, 158, 115)'/>
<use xlink:href='#gpPt1' transform='translate(554.71,186.76) scale(5.25)' color='rgb( 0, 158, 115)'/>
<use xlink:href='#gpPt1' transform='translate(721.67,63.01) scale(5.25)' color='rgb( 0, 158, 115)'/>
</g>
</g>
<g fill="none" color="white" stroke="rgb( 0, 158, 115)" 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='M53.84,63.01 L53.84,558.00 L721.67,558.00 L721.67,63.01 L53.84,63.01 Z '/></g>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<g transform="translate(387.75,36.06)" stroke="none" fill="black" font-family="Arial" font-size="14.00" text-anchor="middle">
<text>Test plot</text>
</g>
</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: 13 KiB

View File

@ -10,5 +10,28 @@ L<"slides"|https://github.com/dkogan/talk-feedgnuplot-vnlog/blob/master/feedgnup
EOF
seq 5 | awk '{print 2*$1, $1*$1}' |
feedgnuplot \
--lines \
--points \
--title "Test plot" \
--y2 1 \
--unset key \
--unset grid \
--hardcopy 'documentation-header-plot.svg'
< bin/feedgnuplot \
awk '/^ *Test plot$/,/^ *1 +1.5 +2 +2.5/ \
{ if(!wrote_plot1) { print "=for html <p><img src=\"documentation-header-plot.svg\">"; \
wrote_plot1 = 1; } \
next; \
} \
/^ *wlan0 throughput$/,/seconds/ \
{ if(!wrote_plot2) { print "=for html <p><img src=\"documentation-header-network-throughput-plot.svg\">"; \
wrote_plot2 = 1; } \
next; \
} \
/=head1/,0 \
{ if(!/^ *--terminal .dumb 80,40. --exit/) { print } }' >> README.pod
< bin/feedgnuplot awk '/=head1/,0' >> README.pod