cli-graph

3.2.2 • Public • Published

cli-graph

cli-graph PayPal Travis Version Downloads Get help on Codementor

Easily draw function graphs in text mode.

☁️ Installation

$ npm i --save cli-graph

Or you can check out the browser version, online.

📋 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());
// =>
//                                 ▲
//                                 │
//                         • • • • • • • • •
//                     • •         │         • •
//                 • •             │             • •
//               •                 │                 •
//             •                   │                   •
//           •                     │                     •
//         •                       │                       •
//         •                       │                       •
//       •                         │                         •
//       •                         │                         •
//     •                           │                           •
//     •                           │                           •
//     •                           │                           •
//     •                           │                           •
// ────•───────────────────────────┼───────────────────────────•──▶
//     •                           │                           •
//     •                           │                           •
//     •                           │                           •
//     •                           │                           •
//       •                         │                         •
//       •                         │                         •
//         •                       │                       •
//         •                       │                       •
//           •                     │                     •
//             •                   │                   •
//               •                 │                 •
//                 • •             │             • •
//                     • •         │         • •
//                         • • • • • • • • •
//                                 │

📝 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): The x origin (default: width / 2)
    • y (Number): The y 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: The x coordinate.
  • Number y: The y 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: The x coordinate.
  • Number y: The y 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 receives x as the first parameter and returns the y value.
  • Number min: The minimum x (default: the lowest possible value).
  • Number max: The maximum x.(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 receives y as the first parameter and returns the x value.
  • Number min: The minimum y (default: the lowest possible value).
  • Number max: The maximum y.(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.

📜 License

MIT © Ionică Bizău

Dependents (3)

Package Sidebar

Install

npm i cli-graph

Weekly Downloads

463

Version

3.2.2

License

MIT

Last publish

Collaborators

  • ionicabizau