Vega-Altair: Declarative Visualization in Python

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • vega-lite

    A concise grammar of interactive graphics, built on Vega.

  • Box zoom would need to be added to Vega-Lite first, and there has been some discussion around it in https://github.com/vega/vega-lite/issues/4742. Bottom line is that there's nothing blocking its implementation, someone just needs to do the work in Vega-Lite. And once released in Vega-Lite, Altair would pick it up automatically with how we generate the Altair API from the Vega-Lite schema.

  • ipysigma

    A Jupyter widget using sigma.js to render interactive networks.

  • https://github.com/medialab/ipysigma

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • altair_tiles

  • (Disclaimer: I'm a Vega-Altair maintainer)

    Thanks for the feedback and for the kind words! All of these drawbacks are fair, just a couple of comments.

    There is an experimental package called altair_tiles that makes is possible to add OSM-style maptile backgrounds to Altair charts. See https://github.com/altair-viz/altair_tiles. This is mostly for static charts at the moment, as it doesn't integrate well with pan/zoom yet.

    As you mentioned, VegaFusion is able to remove unused columns in most cases. (And if it doesn't for a particular case, please open an issue!).

  • dash-vega-components

    Dash component for Vega-Altair charts

  • (a current Altair maintainer and a former plotly.py maintainer here)

    Plotly is definitely a great option as well, and it can do a bunch of things Vega-Altair is not designed for. One comment, just in case you weren't aware, is that there is a relatively new library that provides good integration between Altair and Dash: https://github.com/altair-viz/dash-vega-components. It even makes it possible to access Altair selection states in Dash callbacks so that you can have other dashboard components respond to selections.

  • avenger

    Experimental Vega visualization renderer in Rust using wgpu

  • Have you seen https://github.com/jonmmease/avenger? Which is an experimental Vega visualization renderer in Rust using wgpu.

  • vega_lite

    Elixir bindings for Vega-Lite

  • I love Vega(-lite) / Altair, the grammar of graphics plotting system is really great to build any kind of chart even when it wasn't thought through by the authors of the library. There are other wrappers for languages that lack viz libraries, such as Elixir / Livebook [0]

    However, when I used it a couples years back it struggled with large vizs, I think due to Vega(-lite)'s way of embedding the data in the viz artifact.

    Also, interactive is nice but often I just need a quick static plot, and matplotlib is more convenient for this, you can easily see the png in any environment etc.

    These days I'm eager to see an Observable Plot [1] wrapper for Python !

    [0] https://github.com/livebook-dev/vega_lite

    [1] https://github.com/observablehq/plot

  • plot

    A concise API for exploratory data visualization implementing a layered grammar of graphics

  • I love Vega(-lite) / Altair, the grammar of graphics plotting system is really great to build any kind of chart even when it wasn't thought through by the authors of the library. There are other wrappers for languages that lack viz libraries, such as Elixir / Livebook [0]

    However, when I used it a couples years back it struggled with large vizs, I think due to Vega(-lite)'s way of embedding the data in the viz artifact.

    Also, interactive is nice but often I just need a quick static plot, and matplotlib is more convenient for this, you can easily see the png in any environment etc.

    These days I'm eager to see an Observable Plot [1] wrapper for Python !

    [0] https://github.com/livebook-dev/vega_lite

    [1] https://github.com/observablehq/plot

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Altair

    Declarative statistical visualization library for Python

  • Feel free to open an issue to let us know which parts of the documentation you find obscure and if you have suggestions for how to improve them. We did a larger overhaul a few months back and are always open to feedback on how to improve it further! https://altair-viz.github.io/

    (disclaimer: I'm a co-maintainer of Altair)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts