3.2.2 • Published 10 years ago
cli-graph v3.2.2
cli-graph

Easily draw function graphs in text mode.
:cloud: Installation
$ npm i --save cli-graphOr you can check out the browser version, online.
:clipboard: Example
// Dependencies
var CliGraph = require("cli-graph");
// Create a new function graph
var g1 = new CliGraph({
height: 20
, width: 20
, center: { y: 18 }
}).setFunctionX(function (x) {
return x * x / 5;
});
console.log(g1.toString());
// =>
// ▲
// │
// • │ •
// │
// │
// • │ •
// │
// │
// • │ •
// │
// │
// • │ •
// │
// • │ •
// │
// • │ •
// • │ •
// • │ •
// ──────────────────•─•─•────────────────▶
// │
// Another function
var g2 = new CliGraph({
height: 30
, width: 30
, marks: {
hAxis: '-'
, vAxis: '|'
, center: '+'
, point: '.'
}
});
g2.setFunctionX(function (x) {
return x;
});
console.log(g2.toString());
// =>
// ▲
// | .
// | .
// | .
// | .
// | .
// | .
// | .
// | .
// | .
// | .
// | .
// | .
// | .
// | .
// ------------------------------.----------------------------▶
// . |
// . |
// . |
// . |
// . |
// . |
// . |
// . |
// . |
// . |
// . |
// . |
// . |
// . |
var circle = new CliGraph({ height: 32, width: 32 }).setFunctionX(function (x) {
return Math.sqrt(200 - x * x);
}).setFunctionX(function (x) {
return -Math.sqrt(200 - x * x);
}).setFunctionY(function (y) {
return Math.sqrt(200 - y * y);
}).setFunctionY(function (y) {
return -Math.sqrt(200 - y * y);
});
console.log(circle.toString());
// =>
// ▲
// │
// • • • • • • • • •
// • • │ • •
// • • │ • •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// ────•───────────────────────────┼───────────────────────────•──▶
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • │ •
// • • │ • •
// • • │ • •
// • • • • • • • • •
// │:memo: Documentation
CliGraph(options)
Creates a new CliGraph instance.
Example:
var g = new CliGraph();Params
- Object
options: An object containing the following fields: height(Number): The graph height (default:40).width(Number): The graph width (default:60).aRatio(Number): The horizontal aspect ratio (default:2).center(Object): An object containing:x(Number): Thexorigin (default:width / 2)y(Number): Theyorigin (default:height / 2)
marks(Object): An object containing:hAxis(String): The character for drawing horizontal axis (default"─").vAxis(String): The character for drawing vertical axis (default "│").center(String): The character for axis intersection (default"┼").point(String): The character for drawing points (default"•").rightArrow(String): The character for drawing the right arrow (default"▶").topArrow(String): The character for drawing the top arrow (default"▲").background(String): The background character (default" ").
Return
- CliGraph The CliGraph instance.
addPoint(x, y, chr)
Adds a point on the x and y coordinates.
Params
- Number
x: Thexcoordinate. - Number
y: Theycoordinate. - String
chr: The point character (default: the one provided in defaults).
Return
- CliGraph The CliGraph instance.
isPoint(x, y, chr)
Checks if on given coordinates there is a point.
Params
- Number
x: Thexcoordinate. - Number
y: Theycoordinate. - String
chr: The point character (default: the one provided in defaults).
toString()
Stringifies the graph.
Return
- String The stringified graph.
setFunctionX(foo, min, max, chr)
Adds the function on the graph, iterating the x axis.
Params
- Function
foo: A function that receivesxas the first parameter and returns theyvalue. - Number
min: The minimumx(default: the lowest possible value). - Number
max: The maximumx.(default: the highest possible value). - String
chr: The point character (default: the one provided in defaults).
Return
- CliGraph The CliGraph instance.
setFunctionY(foo, min, max, chr)
Adds the function on the graph, iterating the y axis.
Params
- Function
foo: A function that receivesyas the first parameter and returns thexvalue. - Number
min: The minimumy(default: the lowest possible value). - Number
max: The maximumy.(default: the highest possible value). - String
chr: The point character (default: the one provided in defaults).
Return
- CliGraph The CliGraph instance.
:yum: How to contribute
Have an idea? Found a bug? See how to contribute.
:dizzy: Where is this library used?
If you are using this library in one of your projects, add it in this list. :sparkles:
ascii-heart(by Nuvi Pannu)—Create ASCII hearts using Node.js.cli-circle—Generate ASCII circles with NodeJS.datanow(by Glen Arrowsmith)—DataNow.io's command line tool and node SDK.
