I want to capture the data needed to create a visualization (data, series names, titles etc.) in a way that is not tied to my end charting library. The goal being that I could capture the charting data in a common way and let the UI take these definitions and transform them to target charting library at runtime (d3, high charts etc.)

Does anyone know of a robust / flexible data visualization schema that I could use?

  • 1
    Hi @will, have you had a look at Wilkinson's "The Grammar of Graphics"? Not sure if there's a single framework that can map data to any visualization library but this is a seminal effort in that spirit.
    – sboysel
    Jan 29, 2020 at 1:01

1 Answer 1


"Data visualization" is a wide spectrum -- from tables to infographics, and everything in between.

But I did find one possible source: https://help.plot.ly/json-chart-schema/

The Plotly JSON visualization schema is a complete declarative format for creating, saving, and sharing interactive, scientific charts. The advantage of saving charts as JSON is portability - charts can be shared across any language or platform that understands the schema.

and an example:

    "data": [
            "x": [
            "y": [
            "type": "bar"

enter image description here

The complete JSON schema is maintained as part of Plotly’s V2 REST API:

Fully formatted JSON chart schema for every chart type: https://api.plot.ly/v2/plot-schema?sha1=%27%27 Raw JSON (plain text) chart schema for every chart type: https://api.plot.ly/v2/plot-schema?format=json&sha1=%27%27

This page doesn't have license info, but plot.ly the company states this for plotly.js

Is Plotly.js Free?

Yes. Plotly.js is free and open-source software, licensed under the MIT license. It costs nothing to install and use. You can view the source, report issues or contribute using our Github repository.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.