plottable
by
palantir

Description: :bar_chart: A library of modular chart components built on D3

View palantir/plottable on GitHub ↗

Summary Information

Updated 2 hours ago
Added to GitGenius on September 5th, 2025
Created on January 22nd, 2014
Open Issues/Pull Requests: 329 (+0)
Number of forks: 233
Total Stargazers: 3,067 (+0)
Total Subscribers: 324 (+0)
Detailed Description

Plottable is a JavaScript library developed by Palantir for building interactive data visualizations, particularly focused on large datasets and complex visual encodings. It’s not a charting library in the traditional sense (like Chart.js or D3.js), but rather a foundational toolkit for *creating* charting libraries or highly customized visualizations. Its core philosophy centers around declarative specification, immutability, and efficient rendering, making it well-suited for applications demanding performance and scalability.

At its heart, Plottable uses a concept called “Plots” which represent visual marks – points, lines, rectangles, etc. – and “Scales” which map data values to visual properties like x and y coordinates, color, or size. These are combined within a “Figure” which acts as the overall container for the visualization. Crucially, Plottable emphasizes a functional, immutable approach. Data updates don't modify existing plots; instead, new plots are created with the updated data, and Plottable efficiently handles the differences to update the display. This immutability simplifies reasoning about the visualization's state and facilitates features like undo/redo.

A key strength of Plottable is its handling of large datasets. It employs techniques like data aggregation and downsampling to maintain performance even with millions of data points. It doesn’t attempt to render every single data point directly; instead, it intelligently chooses how much detail to show based on zoom level and screen resolution. This is achieved through a hierarchical rendering system. Furthermore, Plottable is designed to be highly extensible. Users can define custom scales, plots, and interactions to tailor the library to their specific needs. The library provides a robust set of base components, but encourages building upon them rather than being constrained by pre-defined chart types.

The repository contains a comprehensive suite of examples demonstrating various visualization techniques, including scatter plots, line charts, bar charts, heatmaps, and more complex visualizations like parallel coordinates plots. These examples serve as excellent starting points for understanding how to use Plottable and how to build custom visualizations. The documentation is also quite thorough, covering the core concepts, API reference, and best practices. It's worth noting that Plottable is designed to work well with other JavaScript frameworks and libraries, and doesn't impose strict dependencies.

Beyond the core visualization components, Plottable also includes utilities for handling data transformations, interactions (zooming, panning, selection), and layout management. The interaction system is particularly powerful, allowing developers to easily add interactive features to their visualizations. The repository also includes tools for testing and building Plottable applications. While it has a steeper learning curve than some simpler charting libraries, Plottable’s power and flexibility make it a compelling choice for projects requiring sophisticated and performant data visualizations, especially those dealing with large and complex datasets.

plottable
by
palantirpalantir/plottable

Repository Details

Fetching additional details & charts...