2.0.1 • Published 9 years ago

gnuplotter v2.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

node-gnuplotter is an easy to use node.js module to draw charts using gnuplot and ps2pdf. This module is based on Richard Meadows's node-plotter

Installation

Prerequisites:

sudo apt-get install gnuplot ghostscript libgd2-dev

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'
});

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 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 include lines (default), points and linespoints
  • nokey : Disables the graph key
  • hideSeriesTitle: Indicates if plot should include legend
  • margin: Sets margin if needed
  • xRange: Sets max and min values for the X axis
  • yRange: Sets max and min values for the Y axis
  • decimalsign: Specifies a custom decimal sign
  • yFormat: Specifies how to format values on the Y axis
  • font: Specify a custom font
  • fontSize: Font size
  • titleSize: Title font size
  • width: Plot width
  • height: Plot height
  • locale: Locale code (run 'set locale' for the exact value)

The following example shows these in use:

plot({
	title:		'example',
	data:		{ 't1' : { 1357162672: 22.2, 1357162782: 23, 1357162892: 24 } },
	time:		'hours',
	style:		'line',
	filename:	'test/output14.png',
	format:		'png',
	decimalsign: ',',
	yFormat: '%.2f USD',
	hideSeriesTitle: true,
	xlabel:		'Time',
	ylabel:		'Price',
	margin: 	{
		left: 10,
		right: 3,
		top: 3,
		bottom: 4
	},
	xRotate: {
		value: 45,
		yOffset: -1.5,
		xOffset: -2
	},
	hideSeriesTitle: true,
	xRange: {
		min: 0,
		max: 100
	}
});

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'
});

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 with the gnuplot time format.

Other options

The options object might additionally contain the following:

OptionDescriptionExample
execArguments for the gnuplot processoptions.exec = { cwd : '/home/user/images' };
finishCallback executed when the gnuplot process finishesoptions.finish = function(){ Console.log('Success!'); };
2.0.1

9 years ago

2.0.0

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago