matplotnode
v0.4.2
Published
C++ bindings for Node.js exposing a subset of matplotlib's functionality through the CPython API.
Downloads
197
Maintainers
Readme
matplotnode
C++ bindings for Node.js exposing a subset of matplotlib's functionality through the CPython API. Inspired by matplotlib-cpp by lava. Useful for scientific plotting.
Requirements
- Python 2.7 (might work on Python 3, not tested yet)
- matplotlib
Usage
$ npm install matplotnode
const plt = require('matplotnode');
Bindings
- [x]
plot([x], y, ...kwargs)
* - [x]
subplot(str)
- [x]
show()
- [x]
legend()
- [x]
grid(bool active)
- [x]
save(filename)
- [x]
xlim(from, to)
- [x]
ylim(from, to)
- [x]
title(name)
- [x]
axis(axis)
- [x]
xlabel(name)
- [x]
ylabel(name)
- [x]
clf()
- [x]
cla()
- [x]
close()
- [x]
xkcd()
*See how kwargs
are implemented in test.js
Example
const plt = require('matplotnode');
const x = new Array(100).fill(0).map((x, i) => i / Math.PI);
// xkcd-style plot :)
plt.xkcd();
plt.subplot("211");
plt.title('trig');
plt.plot(x, x.map(Math.sin), 'color=r', 'label=sin(x)');
plt.plot(x, x.map(Math.cos), 'color=g', 'label=cos(x)');
plt.legend();
plt.subplot("212");
plt.plot(x, x.map(Math.sin).map((t, i) => t * i), 'color=b', 'label=x * sin(x)', 'marker=o', 'linestyle=None');
plt.legend();
plt.ylim(-100, 100);
plt.save("./examples/subplot.png");
const plt = require('matplotnode');
const x = new Array(100).fill(0).map((x, i) => i / Math.PI);
plt.plot(x, x.map(Math.sin));
plt.grid(true);
plt.show();