📊 A library of modular chart components built on D3
Clone or download
Failed to load latest commit information.
.github Create ISSUE_TEMPLATE.md (#3365) Jun 12, 2017
quicktests Memoize AttrToProjector. Move concats out of inner loop. (#3470) May 31, 2018
src Memoize AttrToProjector. Move concats out of inner loop. (#3470) May 31, 2018
test Upgrade d3 and types. Regenerate yarn.lock (#3464) Apr 27, 2018
webpackConfig Fix CDN links (#3454) Mar 30, 2018
.editorconfig Release/3.5.2 (#3398) Aug 30, 2017
.eslintrc Routable Quicktests (#3199) Feb 2, 2017
.gitattributes Force git to recognize .d.ts files as text Oct 22, 2015
.gitignore Perf: Drastically increase bar plot hover perf (#3449) Mar 23, 2018
.jscsrc adding EOF newline Jun 17, 2015
.npmignore Add build/ folder to NPM dist; remove plottable-npm UMD bundle (#3205) Feb 6, 2017
.sublimets sublime tsc compiling working Jun 3, 2014
Gruntfile.js Deferred Rendering Fixes (#3369) Jun 22, 2017
LICENSE update copyright on licenses (#3154) Jan 11, 2017
README.md Fix CDN links (#3454) Mar 30, 2018
circle.yml Upgrade circle.yml to use node 8.8.1 in builds (#3429) Feb 26, 2018
demo.js Remove superfluous demos preview (#3202) Feb 2, 2017
license_header.txt add license header to source files (#3206) Feb 8, 2017
package.json Bump version for release 3.8.3 (#3471) Jun 4, 2018
plottable.css remove font-family declarations from plottable.css (#3447) Mar 8, 2018
plottable.d.ts [WIP] Convert codebase to module format (#3184) Feb 3, 2017
publishSnapshot.sh update circle.yml and publishSnapshot for new tagging process (#3330) Apr 19, 2017
tsconfig.json Use tslib & importHelpers to improve bundle sizes further (#3424) Dec 5, 2017
tslint.json Canvas all the things (#3379) Jul 26, 2017
webpack.config.js Build plottable.min.js with webpack (#3318) Mar 30, 2017
yarn.lock For-each loop optimization and memoize normalizeKey (#3469) May 31, 2018


Plottable Builds Join the chat at https://gitter.im/palantir/plottable

Plottable is a library of chart components for creating flexible, custom charts for websites. It is built on top of D3.js and provides higher-level pieces, like plots, gridlines, and axes. As such, it's easier to quickly build charts than with D3, and the charts are much more flexible than standard-template charts provided by charting libraries. You can think of Plottable as a "D3 for Charts" — it is not a charting library but rather a library of chart components. Check out examples of Plottable on our website's examples page.


Plottable's core philosophy is "Composition over Configuration", so a lot of the API flexibility is in choosing which Components to use, and how to arrange them in Tables, rather than setting high-level properties on the charts. If you find you need a feature that doesn't exist, consider writing a new Component that implements the functionality. This way, you can get your custom functionality and still benefit from the rest of the library.

Plottable is used and developed at Palantir Technologies. It's developed in TypeScript and distributed in ES5 JavaScript.

Quick Start

Upgrading to v1.0.0

If you are upgrading from a pre-v1.0.0 version of Plottable to v1.0.0 or later, please use the Upgrade Guide on the wiki.

Upgrading to v2.0.0

Check out the full list of changes between v1.16.2 and v2.0.0.

Upgrading to v3.0.0

Check out the full list of changes between v2.9.0 and v3.0.0.

We Want To Help!

If you run into any problems using Plottable, please let us know. We want Plottable to be easy-to-use, so if you are getting confused, it is our fault, not yours. Create an issue and we'll be happy to help you out, or drop by our Gitter room.


  • Clone the repo
  • Install local dependencies yarn install
  • Run yarn build to build the dependencies
  • Run yarn start and it will spin up a server (pointed at http://localhost:9999) and begin compiling the typescript code
  • Navigate to http://localhost:9999/quicktests/ and choose a directory to view visual tests


  • Write your code
  • Add tests for new functionality, and please add some quicktests too
  • Run yarn test and verify it completes with no warnings or failures
  • Submit a pull request and sign the CLA when prompted by our bot