Easily draw function graphs in text mode.
☁️ Installation
$ npm i --save cli-graph
Or you can check out the browser version, online.
📋 Example
// Dependenciesvar CliGraph = ; // Create a new function graphvar g1 = height: 20 width: 20 center: y: 18 ;console;// =>// ▲// │// • │ •// │// │// • │ •// │// │// • │ •// │// │// • │ •// │// • │ •// │// • │ •// • │ •// • │ •// ──────────────────•─•─•────────────────▶// │ // Another functionvar g2 = height: 30 width: 30 marks: hAxis: '-' vAxis: '|' center: '+' point: '.' ; g2; console;// =>// ▲// | .// | .// | .// | .// | .// | .// | .// | .// | .// | .// | .// | .// | .// | .// ------------------------------.----------------------------▶// . |// . |// . |// . |// . |// . |// . |// . |// . |// . |// . |// . |// . |// . | var circle = height: 32 width: 32 ; console;// =>// ▲// │// • • • • • • • • •// • • │ • •// • • │ • •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// ────•───────────────────────────┼───────────────────────────•──▶// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • │ •// • • │ • •// • • │ • •// • • • • • • • • •// │
📝 Documentation
CliGraph(options)
Creates a new CliGraph instance.
Example:
var g = ;
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.
😋 How to contribute
Have an idea? Found a bug? See how to contribute.
💫 Where is this library used?
If you are using this library in one of your projects, add it in this list. ✨
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.