# observablehq/plot

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/observablehq-plot).**

5,305 stars · 228 forks · HTML · ISC

## Links

- GitHub: https://github.com/observablehq/plot
- Homepage: https://observablehq.com/plot/
- awesome-repositories: https://awesome-repositories.com/repository/observablehq-plot.md

## Topics

`charts` `d3` `data-visualization` `svg` `visualization`

## Description

This is a grammar of graphics visualization library used to build charts by mapping tabular data to visual marks. It functions as an SVG data visualization tool and an exploratory data analysis API, allowing users to render complex visualizations and geographic maps.

The library features a GeoJSON map renderer that projects spherical coordinates into two-dimensional pixel space and an Apache Arrow visualization interface for high-efficiency data processing.

Its capability surface covers data transformation through binning and grouping, visual encoding via automatic scale inference and color scheme application, and the generation of small multiples. It supports rendering geometric shapes in layered views and exporting static images in server-side environments.

## Tags

### Graphics & Multimedia

- [Layered Visualization Composition](https://awesome-repositories.com/f/graphics-multimedia/layered-visualization-composition.md) — Implements a layered grammar of graphics to compose independent data, mark, and scale layers into a coherent view.
- [Declarative Visualization Grammars](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/declarative-visualization-grammars.md) — Implements a formal grammar of graphics that builds charts by layering geometric shapes and mapping data to visual channels.
- [Geometric Data Mappings](https://awesome-repositories.com/f/graphics-multimedia/geometric-data-mappings.md) — Renders data as a variety of geometric marks, such as dots, lines, bars, and areas, to represent tabular information. ([source](https://observablehq.com/plot/features/marks))
- [Grammar of Graphics Renderers](https://awesome-repositories.com/f/graphics-multimedia/grammar-of-graphics-renderers.md) — Renders tabular data using a grammar of graphics approach to build charts from layered geometric shapes. ([source](https://observablehq.com/plot/))
- [Data-Driven Shape Generators](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/data-driven-shape-generators.md) — Translates tabular records into geometric shapes by binding data columns to visual channels like position and color.
- [SVG Data Visualization](https://awesome-repositories.com/f/graphics-multimedia/svg-data-visualization.md) — Renders complex data visualizations and geographic maps as scalable vector graphics for web browsers.
- [Data Visualization Scales](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/mapping-libraries/data-visualization-scales.md) — Maps abstract data domains to visual properties like position and color through a system of automated scales. ([source](https://observablehq.com/plot/features/marks))
- [Small Multiples Generation](https://awesome-repositories.com/f/graphics-multimedia/small-multiples-generation.md) — Partitions data by categorical or ordinal values to repeat a plot across multiple sub-grids for direct comparison. ([source](https://observablehq.com/plot/features/facets))
- [Small Multiples Visualizations](https://awesome-repositories.com/f/graphics-multimedia/small-multiples-visualizations.md) — Creates grids of similar charts to enable direct comparison between different categories or subsets of data.

### Data & Databases

- [Apache Arrow Processing](https://awesome-repositories.com/f/data-databases/apache-arrow-processing.md) — Processes diverse input structures, including high-efficiency Apache Arrow tables, for optimized data visualization.
- [Data Visualization](https://awesome-repositories.com/f/data-databases/data-analysis-visualization/visualization-frameworks-libraries/data-visualization.md) — Transforms rows of tabular data into visual representations to accelerate exploratory data analysis. ([source](https://cdn.jsdelivr.net/gh/observablehq/plot@main/README.md))
- [Visual Channel Bindings](https://awesome-repositories.com/f/data-databases/data-analysis-visualization/visualization-frameworks-libraries/data-visualization/visual-channel-bindings.md) — Binds data columns and accessor functions to visual mark options to vary attributes across different data points. ([source](https://observablehq.com/plot/features/marks))
- [Exploratory Data Analysis](https://awesome-repositories.com/f/data-databases/exploratory-data-analysis.md) — Provides an API for rapidly transforming tabular data into charts to discover patterns and statistical insights.
- [Exploratory Analysis APIs](https://awesome-repositories.com/f/data-databases/exploratory-data-analysis/exploratory-analysis-apis.md) — Offers a specialized API for rapid data exploration through automated scales, transforms, and small multiples.
- [Scale and Guide Inference Engines](https://awesome-repositories.com/f/data-databases/scale-and-guide-inference-engines.md) — Automatically infers appropriate quantitative, ordinal, and binned scales from data to generate axes and legends. ([source](https://observablehq.com/plot/features/scales))
- [Tabular Data Analysis](https://awesome-repositories.com/f/data-databases/tabular-data-analysis.md) — Processes tabular data through binning, grouping, and stacking to prepare it for visual representation.
- [In-Memory Format Support](https://awesome-repositories.com/f/data-databases/tabular-data-frameworks/csv-data-loaders/multi-source-csv-loading/multi-format-data-loading/in-memory-format-support.md) — Handles diverse data structures, including arrays of objects and Apache Arrow tables, to improve processing efficiency. ([source](https://observablehq.com/plot/features/marks))
- [Tabular Data Transformations](https://awesome-repositories.com/f/data-databases/tabular-data-transformations.md) — Computes binned, grouped, or stacked values during the rendering pipeline to prepare raw data for visual representation.
- [Composable Mark Extensions](https://awesome-repositories.com/f/data-databases/area-mark-renderings/composable-mark-extensions.md) — Allows creation of specialized chart types by combining primitive geometric marks or adding custom drawing logic.
- [Geographic Projections](https://awesome-repositories.com/f/data-databases/data-analysis-visualization/visualization-frameworks-libraries/chart-components-utilities/geographic-projections.md) — Uses mathematical projections to transform spherical longitude and latitude into two-dimensional pixel space. ([source](https://observablehq.com/plot/features/projections))
- [Geographic Data Mapping](https://awesome-repositories.com/f/data-databases/data-retrieval/geographic-data-mapping.md) — Projects geographic coordinates and GeoJSON objects into visual maps to represent spatial trends.
- [Data Transformation Functions](https://awesome-repositories.com/f/data-databases/data-transformation-functions.md) — Allows the definition of user-specified functions to derive custom data, indexes, or channels before rendering. ([source](https://observablehq.com/plot/features/transforms))
- [Server-Side Chart Image Exports](https://awesome-repositories.com/f/data-databases/data-visualization-charts/chart-configuration-serialization/chart-data-and-image-exporters/server-side-chart-image-exports.md) — Produces SVG or PNG representations of visualizations in server-side environments by serializing the plot output. ([source](https://observablehq.com/plot/getting-started))

### Scientific & Mathematical Computing

- [Coordinate Projections](https://awesome-repositories.com/f/scientific-mathematical-computing/coordinate-projections.md) — Provides mathematical utilities to project spherical longitude and latitude coordinates into two-dimensional pixel positions.

### User Interface & Experience

- [Categorical Data Mappings](https://awesome-repositories.com/f/user-interface-experience/categorical-data-mappings.md) — Assigns discrete, ordinal, or nominal data to uniform visual intervals to prevent interpolation on chart axes. ([source](https://observablehq.com/plot/features/scales))
- [Color Schemes](https://awesome-repositories.com/f/user-interface-experience/color-schemes.md) — Encodes data magnitudes and categories using sequential, diverging, or categorical color palettes. ([source](https://observablehq.com/plot/features/scales))
- [Standalone Scale Generation](https://awesome-repositories.com/f/user-interface-experience/density-independent-scaling/standalone-scale-generation.md) — Generates independent scale objects that can be reused across different visualizations to maintain consistent mapping. ([source](https://observablehq.com/plot/features/scales))

### Part of an Awesome List

- [Tabular Data Pre-processing](https://awesome-repositories.com/f/awesome-lists/data/data-transformation/tabular-data-pre-processing.md) — Derives new data values on-the-fly through operations like binning and rolling averages to prepare data for visualization. ([source](https://observablehq.com/plot/features/transforms))
- [GeoJSON Renderers](https://awesome-repositories.com/f/awesome-lists/devtools/map-rendering-engines/geojson-renderers.md) — Renders geographic features using the GeoJSON specification and projects them into visual map space.

### Development Tools & Productivity

- [Display Data Transformations](https://awesome-repositories.com/f/development-tools-productivity/data-structure-visualizers/display-data-transformations.md) — Groups, bins, or stacks data points to resolve overplotting and highlight patterns before rendering visual marks. ([source](https://observablehq.com/plot/what-is-plot))
