{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Extracting vega lite from altair" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create an example altair chart:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/vnd.vegalite.v2+json": { "$schema": "https://vega.github.io/schema/vega-lite/v2.6.0.json", "config": { "view": { "height": 300, "width": 400 } }, "data": { "format": { "type": "json" }, "url": "https://vega.github.io/vega-datasets/data/population.json" }, "encoding": { "x": { "aggregate": "sum", "axis": { "title": "population" }, "field": "people", "type": "quantitative" }, "y": { "field": "age", "type": "ordinal" } }, "height": 300, "mark": "bar", "transform": [ { "filter": "(datum.year === 2000)" } ], "width": 300 }, "image/png": "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", "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/troubleshooting.html\n" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import altair as alt\n", "from altair.expr import datum\n", "\n", "from vega_datasets import data\n", "pop = data.population.url\n", "\n", "alt.renderers.enable('default')\n", "c = alt.Chart(pop).mark_bar().encode(\n", " x=alt.X('sum(people):Q', axis=alt.Axis(title='population')),\n", " y='age:O'\n", ").properties(\n", " height=300,\n", " width=300\n", ").transform_filter(\n", " datum.year == 2000\n", ")\n", "c" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look at the json representation of the vega lite:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/json": { "$schema": "https://vega.github.io/schema/vega-lite/v2.6.0.json", "config": { "view": { "height": 300, "width": 400 } }, "data": { "url": "https://vega.github.io/vega-datasets/data/population.json" }, "encoding": { "x": { "aggregate": "sum", "axis": { "title": "population" }, "field": "people", "type": "quantitative" }, "y": { "field": "age", "type": "ordinal" } }, "height": 300, "mark": "bar", "transform": [ { "filter": "(datum.year === 2000)" } ], "width": 300 }, "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/troubleshooting.html\n" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "alt.renderers.enable('json')\n", "c\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's now render this but instead extract transformations out to the top level of the vega lite spec:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/json": { "$schema": "https://vega.github.io/schema/vega-lite/v2.6.0.json", "config": { "view": { "height": 300, "width": 400 } }, "data": { "url": "https://vega.github.io/vega-datasets/data/population.json" }, "encoding": { "x": { "axis": { "title": "population" }, "field": "sum_people", "type": "quantitative" }, "y": { "field": "age", "type": "ordinal" } }, "height": 300, "mark": "bar", "transform": [ { "filter": "(datum.year === 2000)" }, { "aggregate": [ { "as": "sum_people", "field": "people", "op": "sum" } ], "groupby": [ "age" ] } ], "width": 300 }, "text/plain": [ "" ] }, "metadata": { "application/json": { "expanded": false, "root": "root" } }, "output_type": "display_data" }, { "data": { "text/plain": [] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import jupyterlab_omnisci\n", "alt.renderers.enable('extract-json')\n", "c" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we see transformations at the top here." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.6" } }, "nbformat": 4, "nbformat_minor": 2 }