cli-graph
v3.2.2
Published
Easily draw function graphs in text mode.
Downloads
8,570
Maintainers
Readme
cli-graph
Easily draw function graphs in text mode.
:cloud: Installation
$ npm i --save cli-graph
Or 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): Thex
origin (default:width / 2
)y
(Number): They
origin (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
: Thex
coordinate. - Number
y
: They
coordinate. - 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
: Thex
coordinate. - Number
y
: They
coordinate. - 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 receivesx
as the first parameter and returns they
value. - 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 receivesy
as the first parameter and returns thex
value. - 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.