Turns an array of data into a graph in a pdf document.
npm install plotternodejs-plotter is a node.js module that
turns an array of data into a graph. Uses
gnuplot and
ps2pdf.
Prerequisites:
```
sudo apt-get install gnuplot ghostscript
If you have npm installed, just run:
``
npm install plotter
`javascript
var plot = require('plotter').plot;
plot({
data: [ 3, 1, 2, 3, 4 ],
filename: 'output.png'
});
`
Plotting is achieved by calling the plot function with an object
containing various properties. Both 'data' and 'filename' are
essential, all other properties are optional.
This defaults to .png but specifing format: svg changes the outputformat: pdf
to .svg and changes
the output format to
.pdf.
`javascript
var plot = require('plotter').plot;
plot({
data: [ 3, 1, 2, 3, 4 ],
filename: 'output.svg',
format: 'svg'
});
`
The following properties can be used:
- title : _Sets the title of the graph_xlabel
- : _Sets the label on the x axis of the graph_ylabel
- : _Sets the label on the y axis of the graph_logscale
- : _Makes the y axis of the graph appear in a log scale_style
- : _The style of the lines on the graph. Possibilites includelines
(default), points and linespoints_nokey
- : _Disables the graph key_
The following example shows these in use:
`javascript`
plot({
data: [ 3, 1, 2, 3, 4 ],
filename: 'output.pdf',
style: 'linespoints',
title: 'Example \'Title\', \\n runs onto multiple lines',
logscale: true,
xlabel: 'time',
ylabel: 'length of string',
format: 'pdf'
});
`javascript`
plot({
data: { 'line' : { 1: 5, 5: 6 } },
filename: 'output.png'
});
Instead of specifing an array for data, you can specify an object
with a named series inside.
`javascript`
plot({
data: { 'tick' : [ 3, 1, 2, 3, 4 ], 'line' : { 1: 5, 5: 6 } },
filename: 'output.png'
});
You can specify multiple series inside an object.
`javascript`
plot({
data: { 'tick' : [ 3, 1, 2, 3, 4, 15, 3, 2, 4, 11 ],
'tick2' : [ 3, 10, 2, 30, 4, 15, 3, 20, 4, 11 ] },
filename: 'output.png',
moving_avg: 4
});
This will plot the points with a 4-point moving average. A
moving_max can also be specified, which if applied alongside amoving_avg will be calculated after the moving average.
`javascript`
plot({
data: { 'temperature' :
{ 1357162672: 22, 1357162782: 23, 1357162892: 24 } },
time: 'hours',
filename: 'output.png'
});
The x axis can be formatted as a time series if the x values are given
as a unix time. The time'hours'
property can be specified as either (the default), 'days''%H:%M'`.
or with a
gnuplot time format
like
MIT