UNPKG

chrt

Version:

Chrt is a library for creating charts in the most spontaneous way possible.

207 lines (141 loc) 5.16 kB
# chrt **Chrt** is a free, open source JavaScript library with the goal of creating a more spontaneous experience to make charts. Coding with chrt should be as simple as snapping together building blocks, where each block is an element of the chart. ### Observable Examples and Documentation: - [Introducing Chrt - Observable](https://observablehq.com/@chrt/introducing-chrt?collection=@chrt/chrt) ### Resources - [Modules](#modules) - [How to install](#how-to-install) - [Examples](#examples) - [How to build](#how-to-build) - [Testing](#testing) ### Modules chrt is composed of several modules, each focusing on specific functionality: #### Core and Base Functionality - [chrt-core](https://github.com/chrt-io/chrt-core) - Core functionality and chart management - [chrt-object](https://github.com/chrt-io/chrt-object) - Base object class for all components #### Chart Components - [chrt-line](https://github.com/chrt-io/chrt-line) - Line charts - [chrt-bars](https://github.com/chrt-io/chrt-bars) - Bar and column charts - [chrt-points](https://github.com/chrt-io/chrt-points) - Scatter plots and point-based visualizations - [chrt-dotplot](https://github.com/chrt-io/chrt-dotplot) - Dot plot visualizations #### Axes and Grid - [chrt-axis](https://github.com/chrt-io/chrt-axis) - Axis components - [chrt-grid](https://github.com/chrt-io/chrt-grid) - Grid lines #### Enhancement Components - [chrt-label](https://github.com/chrt-io/chrt-label) - Text labels and annotations - [chrt-markers](https://github.com/chrt-io/chrt-markers) - Point markers and indicators - [chrt-range](https://github.com/chrt-io/chrt-range) - Range and threshold indicators - [chrt-annotation](https://github.com/chrt-io/chrt-annotation) - Chart annotations #### Utilities - [chrt-set](https://github.com/chrt-io/chrt-set) - Grouping and stacking functionality - [chrt-interpolations](https://github.com/chrt-io/chrt-interpolations) - Line interpolation methods Each module is independently maintained and documented. Visit the individual repositories for detailed documentation and examples. ## How to install ### Use in vanilla HTML In vanilla HTML, you can load `chrt` from a CDN such as jsDelivr or you can download it locally. The following examples show how use `chrt` in your HTML page: #### ESM+CDN ```html <!doctype html> <div id="container"></div> <script type="module"> import * as chrt from "https://cdn.jsdelivr.net/npm/chrt/+esm"; chrt .Chrt() .add(chrt.line().data([3, 2, 5, 1, 2, 4, 5])) .node(document.getElementById("container")); </script> ``` #### UMD+CDN ```html <!doctype html> <div id="container"></div> <script src="https://cdn.jsdelivr.net/npm/chrt@latest"></script> <script type="module"> chrt .Chrt() .add(chrt.line().data([3, 2, 5, 1, 2, 4, 5])) .node(document.getElementById("container")); </script> ``` #### UMD+Local ```html <!doctype html> <div id="container"></div> <script src="chrt.js"></script> <script type="module"> chrt .Chrt() .add(chrt.line().data([3, 2, 5, 1, 2, 4, 5])) .node(document.getElementById("container")); </script> ``` ### Install from npm If you’re developing a web application using Node, you can install `chrt` via yarn, npm, or your preferred package manager. ```bash npm install chrt ``` After the installation, you can use it as: ```javascript import * as chrt from "chrt"; ``` ## Examples ```js import * as chrt from "chrt"; // Create a basic line chart const chart = chrt .Chrt() .node(document.querySelector("#chart")) .size(600, 400) .data([1, 2, 3, 4, 5]) .add(chrt.xAxis()) .add(chrt.yAxis()) .add(chrt.line()); ``` For detailed documentation and examples, visit: - [Introducing Chrt](https://observablehq.com/@chrt/introducing-chrt?collection=@chrt/chrt) - [Chrt Examples Collection](https://observablehq.com/collection/@chrt/chrt) ## How to build ### Install the dependencies ``` npm install ``` ### Build the package ``` npm build ``` ### Developing If you want to develop and see the changes reloaded live into another app you can use the watch script ``` npm run watch ``` ## Use it as a module ### Method 1 - tgz package #### Use the tgz provided in the repository You can use the `chrt-VERSION.tgz` package. The following commands will expand the chrt module in the `node_modules` folder of your project. Ready to be used with the usual `import` command: ``` cp chrt-VERSION.tgz SOMEWHERE cd myproject npm install SOMEWHERE/chrt-VERSION.tgz ``` #### Create a tgz npm package You can create a package for testing with ``` npm pack ``` This command will create a file called `chrt-VERSION.tgz` in the root folder of chrt. ### Method 2 - symlinked package #### Create a global node module ``` npm link ``` This creates `chrt` module inside your global `node_modules` so that you can import it with `import {chrtLine} from 'chrt';` #### Use the module in a different app ``` npm link chrt ``` This will create a sym link to the module created in your global. ## Use it in your code After having installed or sym-linked the node you can use it as usual ``` import * as chrt from 'chrt'; ```