Billboard.js
š Re-usable, easy interface JavaScript chart library based on D3.js
Install / Use
/learn @naver/Billboard.jsREADME
[![Latest Version][badge-latest]][link-version] [![Next version][badge-next]][link-version] [![bb][badge-@billboard.js/react]][link-@billboard.js/react]<br> [![semantic-release][badge-semantic-release]][link-semantic-release] ![React][badge-react]
[![download][badge-download]][link-download] [![download][badge-download-weekly]][link-download] [![jsDelivr][badge-jsDelivr]][link-jsDelivr] [![jsDelivr][badge-jsDelivr-weekly]][link-jsDelivr]<br> ![CI Status][badge-ci-status] [![Coverage Status][badge-coverage]][link-coverage] [![Known Vulnerabilities][badge-snyk]][link-snyk] [![gzip size][badge-gzip-size]][link-gzip-size]
billboard.js is a re-usable, easy interface JavaScript chart library, based on D3.js.
The name "billboard" comes from the famous
billboard chartwhich everybody knows.<br>
Documents
- API Documentation
- Examples
- Roadmap
- Contribution Guide
- Development Guide
- Comparison table with other libraries
- Migration guide from C3.js
- Third Party Applications
- Who's using billboard.js
- Benchmark
- Technicals:
- How to bundle for legacy browsers?
- How to generate chart image in Node.js environment?
- find out more at Wiki page.
- v2 updates:
- v3 updates:
Questions?
If you have any questions, check out the previous posts or create a new one at:
Supported chart types
<img src="https://naver.github.io/billboard.js/img/chart-types.png?v=15" width=800>Download and Installation
Download dist files from the repo directly or install it via npm.
<details> <summary>Dist file list from the repo. (click to expand)</summary>For development (Uncompressed)
You can download the uncompressed files for development
Latest
- https://naver.github.io/billboard.js/release/latest/dist/billboard.js
- https://naver.github.io/billboard.js/release/latest/dist/billboard.css
Specific version
- https://naver.github.io/billboard.js/release/[VERSION]/dist/billboard.js
- https://naver.github.io/billboard.js/release/[VERSION]/dist/billboard.css
For production (Compressed)
You can download the compressed files for production
Latest
- https://naver.github.io/billboard.js/release/latest/dist/billboard.min.js
- https://naver.github.io/billboard.js/release/latest/dist/billboard.min.css
Specific version
- https://naver.github.io/billboard.js/release/[VERSION]/dist/billboard.min.js
- https://naver.github.io/billboard.js/release/[VERSION]/dist/billboard.min.css
Packaged version (with D3.js inclusion)
ā ļø Packaged version is not an official distribution. It's to provide an easy way to load 'billboard.js' with dependencies.
- Latest
- https://naver.github.io/billboard.js/release/latest/dist/billboard.pkgd.js
- https://naver.github.io/billboard.js/release/latest/dist/billboard.pkgd.min.js
- Specific version
- https://naver.github.io/billboard.js/release/[VERSION]/dist/billboard.pkgd.js
- https://naver.github.io/billboard.js/release/[VERSION]/dist/billboard.pkgd.min.js
Themes
<details> <summary>Dist theme file list from the repo. (click to expand)</summary>[!NOTE] If you want to apply themes, simply load one of the theme css files provided instead of the default css file.
datalab
- https://naver.github.io/billboard.js/release/latest/dist/theme/datalab.css
- https://naver.github.io/billboard.js/release/latest/dist/theme/datalab.min.css
dark
- https://naver.github.io/billboard.js/release/latest/dist/theme/dark.css
- https://naver.github.io/billboard.js/release/latest/dist/theme/dark.min.css
insight
- https://naver.github.io/billboard.js/release/latest/dist/theme/insight.css
- https://naver.github.io/billboard.js/release/latest/dist/theme/insight.min.css
graph
- https://naver.github.io/billboard.js/release/latest/dist/theme/graph.css
- https://naver.github.io/billboard.js/release/latest/dist/theme/graph.min.css
modern
- https://naver.github.io/billboard.js/release/latest/dist/theme/modern.css
- https://naver.github.io/billboard.js/release/latest/dist/theme/modern.min.css
Nightly version
Nightly version is the latest build from the master branch. With nightly, you can try upcoming changes prior to the official release.
- https://github.com/naver/billboard.js/tree/nightly/dist
[!NOTE] The version info will be given as the build datetime:
x.x.x-nightly-yyyymmddhhmmss
There are two ways to install from the nightly branch directly.
// Specify on 'package.json' file
"dependencies": {
...
"billboard.js": "naver/billboard.js#nightly"
},
# Run install command from shell
$ npm install git+https://github.com/naver/billboard.js.git#nightly --save
Next (Release Candidate) version
Next version is the 'release candidate' build, prior to the latest official release.
# Run install command from shell
$ npm install billboard.js@next --save
Installation with npm
$ npm install billboard.js
Packages
Name | For | Description :---: | :---:| :---: [![bb][badge-@billboard.js/react]][link-@billboard.js/react] | ![React][badge-react] | React component for billboard.js
Using CDN
If you want to use 'billboard.js' without installation, load files directly from one of the CDN providers.
- cdnjs: https://cdnjs.com/libraries/billboard.js
- jsDelivr: https://cdn.jsdelivr.net/npm/billboard.js/dist/
- unpkg: https://unpkg.com/billboard.js/dist/
Supported Browsers
[!IMPORTANT]
- Basically will work on all SVG and ES6+ supported browsers.
- <sup>*</sup>Notes for legacy browsers:
- Recommended to use the
packagedbuild or construct your own build followingHow to bundle for legacy browsers?instructions.- D3.js has dropped support for legacy browsers since v6.
- Support isn't fully guaranteed.
Dependency by version
D3.js (required)| billboard.js :---: | :---: 4.x ~ 5.x | 1.x ~ 2.x 6.x+ | 3.x+
Getting Started
Load billboard.js after D3.js.
<!-- 1) Load D3.js and billboard.js separately -->
<!-- Load D3: -->
<script src="https://d3js.org/d3.v6.min.js"></script>
<!-- Load billboard.js with base(or theme) style -->
<link rel="stylesheet" href="$YOUR_PATH/billboard.css">
<script src="$YOUR_PATH/billboard.js"></script>
<!-- 2) or Load billboard.js packaged with D3.js -->
<link rel="stylesheet" href="$YOUR_PATH/billboard.css">
<script src="$YOUR_PATH/billboard.pkgd.js"></script>
or by importing ESM.
[!TIP] š Also check: How to load as ESM directly from the browser?
// 1) import billboard.js
// as named import with desired shapes and interaction modules
// https://github.com/naver/billboard.js/wiki/CHANGELOG-v2#modularization-by-its-functionality
import {bb, area, bar, zoom} from "billboard.js";
// or as importing default
import bb, {area, bar, zoom} from "billboard.js";
// 2) import css if your dev-env supports. If don't, include them via <link>
import "billboard.js/dist/billboard.css";
// or theme style. Find more themes from 'theme' folder
import "billboard.js/dist/theme/insight.css"
[!NOTE]
- For migration from C3.js, check out the migration guide.
- If you have an issue bundling for legacy browsers, check out "How to bundle for legacy browsers?".
Basic usage example
1) Create chart holder element
<div id="chart"></div>
2) Generate a chart with options
// generate the chart
var chart = bb.generate({
bindto: "#chart",
data: {
// for ESM import usage, import 'line' module and execute it as
// type: line(),
type: "line",
columns: [
["data1", 30, 200, 100, 400, 150, 250]
]
},
zoom: {
// for ESM import usage, import 'zoom' module a
