Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 8 commits ahead, 259 commits behind palantir:develop.

Latest commit


Git stats


Failed to load latest commit information.

Plottable.js Builds


Join the chat at


Plottable.js 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.js is being developed by 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.

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 global dependencies npm install grunt grunt-cli -g
  • Install local dependencies npm install
  • Run grunt and it will spin up a server (pointed at http://localhost:9999) and begin compiling the typescript code
  • If you get an EACCESS error at any point, instead of running command with sudo try first changing permission to following folders:
    • usr/local by running sudo chown -R "$(whoami)" /usr/local
    • ~/.npm/ by running sudo chown -R "$(whoami)" ~/.npm/
  • Navigate to http://localhost:9999/quicktests/ and choose a directory to view visual tests

Eric's notes

Build source into javacript with grunt src-compile

Install as dependency into project locally with npm install --save ../plottabledir
This will put the built version into node_modules


  • Write your code
  • Add tests for new functionality, and please add some quicktests too
  • Run grunt test and verify it completes with no warnings or failures
  • Commit new files, including the updated built files like plottable.js and plottable.d.ts
  • Fill out the Personal or Corporate Contributor License Agreement and send it to
    • You can do this easily on a Mac by using the Tools - Annotate - Signature feature in Preview.
  • Submit a pull request


A library of modular chart components, built on D3







No packages published


  • TypeScript 58.2%
  • JavaScript 41.1%
  • Other 0.7%