.. _resources:

Resources
=========

We hope to make it easier to find learning resources and projects related to Altair by listing them here. If you know of a project that should be added, please let us know by opening an `Issue on GitHub <https://github.com/vega/altair/issues>`_.

.. _learning-resources:

Learning Material
-----------------

This is a list of learning material that complements the official documentation and can help you learn more about how to use Altair.

`Visualization Curriculum`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~

A data visualization curriculum from the UW data group that developed Vega-Lite.

.. List of links.
.. _`Visualization Curriculum`: https://uwdata.github.io/visualization-curriculum

`Jupyter Notebook Tutorials`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Jupyter Notebook tutorials and examples from the Altair authors.

.. List of links.
.. _`Jupyter Notebook Tutorials`: https://github.com/altair-viz/altair_notebooks

`Pycon Tutorial`_
~~~~~~~~~~~~~~~~~

Altair tutorial given at PyCon 2018 by the Altair author Jake VanderPlas.

.. List of links.
.. _`Pycon tutorial`: https://altair-viz.github.io/altair-tutorial

`Data Visualization Course`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This course covers how to create common statistical visualizations, tell stories with data, create geographical visualizations, and bring plots to life by adding interactive elements. Created at the University of British Columbia and can either be audited or taken as part of the `Key Capabilities for Data Science`_ certificate program.

.. List of links.
.. _`Data Visualization Course`: https://viz-learn.mds.ubc.ca
.. _`Key Capabilities for Data Science`: https://extendedlearning.ubc.ca/programs/key-capabilities-data-science

`Brief Introduction Videos`_
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Calmcode provides a few videos that give a brief overview of the Altair library.

.. List of links.
.. _`Brief Introduction Videos`: https://calmcode.io/altair/introduction.html


.. _altair-ecosystem:

Related Projects
----------------

This is a list of projects which are directly related to Altair. There are many other packages that can be used in tandem with Altair, e.g. `dashboard packages which you can read more about in the answers to this StackOverflow question`_.

.. List of links.
.. _`dashboard packages which you can read more about in the answers to this StackOverflow question`: https://stackoverflow.com/questions/49833866/making-dashboards-using-altair

Vega-Lite_
~~~~~~~~~~

The higher-level visualization grammar that Altair implements in Python.

.. List of links.
.. _Vega-Lite: https://vega.github.io/vega-lite

vl-convert_
~~~~~~~~~~~

Python library for converting Altair/Vega-Lite chart specifications into static images (SVG or PNG) or Vega chart specifications without any external dependencies.

.. List of links.
.. _vl-convert: https://github.com/vega/vl-convert

VegaFusion_
~~~~~~~~~~~

VegaFusion provides server-side scaling for Altair charts, which can accelerate interactive charts, extract transformed data, and perform data-intensive aggregations on the server and prune unused columns from the source dataset yielding smaller size visualizations.

.. List of links.
.. _VegaFusion: https://vegafusion.io/

altair_data_server_
~~~~~~~~~~~~~~~~~~~

Data transformer plugin that transparently serves data for charts.

.. List of links.
.. _altair_data_server: https://github.com/altair-viz/altair_data_server

altair_pandas_
~~~~~~~~~~~~~~

Altair backend for the pandas plotting API.

.. List of links.
.. _altair_pandas: https://github.com/altair-viz/altair_pandas

altair_recipes_
~~~~~~~~~~~~~~~

altair_recipes provides a collection of ready-made statistical graphics for Altair. See the `docs <https://altair-recipes.readthedocs.io/en/latest/>`__.

.. List of links.
.. _altair_recipes: https://github.com/piccolbo/altair_recipes

nx_altair_
~~~~~~~~~~

nx_altair is a library for drawing NetworkX_ graphs using Altair. It offers a similar draw API as NetworkX but returns Altair Charts instead. This allows users to apply Altair's rich interactive API to networks graphs. See the `docs <https://github.com/Zsailer/nx_altair/blob/master/examples/nx_altair-tutorial.ipynb>`__.

.. List of links.
.. _nx_altair: https://github.com/Zsailer/nx_altair
.. _NetworkX: https://networkx.github.io/

`Altair Ally`_
~~~~~~~~~~~~~~

Altair Ally is a companion package to Altair, which provides a few shortcuts to create common plots for exploratory data analysis, particularly those involving visualization of an entire dataframe.

.. List of links.
.. _`Altair Ally`: https://github.com/vega/altair_ally

gif_
~~~~

gif is the extension for Altair and matplotlib animations. The library provides a simple, high-level decorator interface to create frames in a regular for-loop that can be stitched together on save. See the `docs <https://github.com/maxhumber/gif>`__.

.. List of links.
.. _gif: https://github.com/maxhumber/gif

`Altair in R`_
~~~~~~~~~~~~~~

Altair in R provides an R interface to the Altair Python package. See the `docs <https://vegawidget.github.io/altair/>`__.

.. List of links.
.. _`Altair in R`: https://github.com/vegawidget/altair

Altair-upset_
~~~~~~~~~~~~~

Create beautiful and interactive UpSet plots using Altair. UpSet plots are a powerful alternative to Venn diagrams for visualizing set intersections, especially when dealing with many sets. The library supports both Pandas and Polars DataFrames, making it flexible for different data processing workflows.

.. List of links.
.. _altair-upset: https://altair-upset.readthedocs.io/en/latest/
.. _UpSet Plots: https://upset.app
