README
nodejs-plotter is a node.js module that turns an array of data into a graph. Uses gnuplot and ps2pdf.
Installation
Prerequisites:
sudo apt-get install gnuplot ghostscript
If you have npm installed, just run:
npm install plotter
Usage
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.
Output format
This defaults to .png
but specifing format: svg
changes the output
to .svg and format: pdf
changes
the output format to
.pdf.
var plot = require('plotter').plot;
plot({
data: [ 3, 1, 2, 3, 4 ],
filename: 'output.svg',
format: 'svg'
});
Formatting
The following properties can be used:
title
: Sets the title of the graphxlabel
: Sets the label on the x axis of the graphylabel
: Sets the label on the y axis of the graphlogscale
: Makes the y axis of the graph appear in a log scalestyle
: The style of the lines on the graph. Possibilites includelines
(default),points
andlinespoints
nokey
: Disables the graph key
The following example shows these in use:
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'
});
Specifing X and Y values
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.
Multiple Series
plot({
data: { 'tick' : [ 3, 1, 2, 3, 4 ], 'line' : { 1: 5, 5: 6 } },
filename: 'output.png'
});
You can specify multiple series inside an object.
Moving Averages and Maximums
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 a
moving_avg
will be calculated after the moving average.
Time Formatting
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
property can be specified as either 'hours'
(the default), 'days'
or with a
gnuplot time format
like '%H:%M'
.
LICENSE
MIT