{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Altair: Statistical Visualization for Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Altair](http://github.com/altair-viz/altair/) provides a declarative Python API for statistical visualization, built on top of [Vega-Lite](http://vega.github.io/vega-lite/).\n", "\n", "The notebooks listed here provide a set of tutorials and examples of Altair's use. For more complete documentation, see [Altair's Documentation](http://altair-viz.github.io/).\n", "\n", "Please note that these notebooks assume Altair version 2.0 or later:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'4.0.0'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import altair\n", "altair.__version__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## About Altair\n", "\n", "Altair is built on [Vega-Lite](http://vega.github.io/vega-lite/). From the Vega-lite documentation:\n", "\n", "> Vega-Lite specifications describe visualizations as mappings from data to properties of graphical marks (e.g., points or bars). It automatically produces visualization components including axes, legends, and scales. It then determines properties of these components based on a set of carefully designed rules. This approach allows Vega-Lite specifications to be succinct and expressive, but also provide user control. As Vega-Lite is designed for analysis, it supports data transformations such as aggregation, binning, filtering, sorting, and visual transformations including stacking and faceting.\n", "\n", "The key feature of this declarative approach is that the user is free to think about the data, rather than the mechanics of the visualization. Vega-Lite specifications are expressed in JavaScript Object Notation (JSON), a cross-platform format often used for storage of nested and/or hierarchical data. Altair builds a Python layer on top of this, so that rather than writing raw JSON strings the user can write declarative Python code." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quick Altair example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is a quick example of the Altair API in action:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "" ], "text/plain": [ "alt.Chart(...)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import altair as alt\n", "from vega_datasets import data\n", "\n", "cars = data.cars()\n", "\n", "chart = alt.Chart(cars).mark_circle().encode(\n", " x='Horsepower',\n", " y='Miles_per_Gallon',\n", " color='Origin',\n", ")\n", "\n", "chart" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In most cases, the data passed to the ``Chart`` will be a standard Pandas dataframe, as we can see here:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameMiles_per_GallonCylindersDisplacementHorsepowerWeight_in_lbsAccelerationYearOrigin
0chevrolet chevelle malibu18.08307.0130.0350412.01970-01-01USA
1buick skylark 32015.08350.0165.0369311.51970-01-01USA
2plymouth satellite18.08318.0150.0343611.01970-01-01USA
3amc rebel sst16.08304.0150.0343312.01970-01-01USA
4ford torino17.08302.0140.0344910.51970-01-01USA
\n", "
" ], "text/plain": [ " Name Miles_per_Gallon Cylinders Displacement \\\n", "0 chevrolet chevelle malibu 18.0 8 307.0 \n", "1 buick skylark 320 15.0 8 350.0 \n", "2 plymouth satellite 18.0 8 318.0 \n", "3 amc rebel sst 16.0 8 304.0 \n", "4 ford torino 17.0 8 302.0 \n", "\n", " Horsepower Weight_in_lbs Acceleration Year Origin \n", "0 130.0 3504 12.0 1970-01-01 USA \n", "1 165.0 3693 11.5 1970-01-01 USA \n", "2 150.0 3436 11.0 1970-01-01 USA \n", "3 150.0 3433 12.0 1970-01-01 USA \n", "4 140.0 3449 10.5 1970-01-01 USA " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cars.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Under the hood, Altair interprets the input and constructs a Python dictionary of the vega-lite specification (removing the data for clarity):" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'config': {'view': {'continuousWidth': 400, 'continuousHeight': 300}},\n", " 'data': {'name': 'data-f02450ab61490a1363517a0190416235'},\n", " 'mark': 'circle',\n", " 'encoding': {'color': {'type': 'nominal', 'field': 'Origin'},\n", " 'x': {'type': 'quantitative', 'field': 'Horsepower'},\n", " 'y': {'type': 'quantitative', 'field': 'Miles_per_Gallon'}},\n", " '$schema': 'https://vega.github.io/schema/vega-lite/v4.0.0.json'}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dct = chart.to_dict()\n", "dct.pop('datasets') # leave out dataset for clarity\n", "dct" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When converted to JSON, this spec is exactly in the form expected by Vega-Lite." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Comparison to Matplotlib" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To clarify the declarative nature of Altair, we perform the same visualization with [Matplotlib](http://matplotlib.org/):" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEGCAYAAACNaZVuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOydeXxU5b3wv7+ZTFYgCVsIiwIuuEAkiksFFaGC17ggImrr1r6Vrpr2WitYl6i8kkp7FW9v26u1V7RWQURQ0yv4ClFxqQJBFi1qMQoh7EkgG5nMPO8fZ2aY5ZzZMpNkkuf7+QxhnjnnOb9zJvmd5/xWUUqh0Wg0mt6FrasF0Gg0Gk3no5W/RqPR9EK08tdoNJpeiFb+Go1G0wvRyl+j0Wh6IWldLUC0DBw4UI0cOTLh8zY1NZGTk5PweROJljFxpIKcWsbEkQpyJlvGDRs2HFBKDQr5QCmVEq+zzjpLJYO1a9cmZd5EomVMHKkgp5YxcaSCnMmWEVivTHSqNvtoNBpNL0Qrf41Go+mFaOWv0Wg0vZCUcfhqNBoNgNPpZNeuXbS2tkbcNjc3l88++6wTpIqfRMmYmZnJ8OHDcTgcUW2vlb9Go0kpdu3aRd++fRk5ciQiEnbbI0eO0Ldv306SLD4SIaNSioMHD7Jr1y5GjRoV1T7a7JNMNi+Fx8ZCWZ7xc/PSrpZIo0l5WltbGTBgQETF35sQEQYMGBDV05AXvfJPFpuXwmt3gLPFeN+w03gPUDS76+TSaHoAWvGHEus10Sv/ZPHWQ8cUvxdnizGu0Wg0XYxW/smiYVds4xqNpsvYtWsXV111FSeddBInnHACpaWltLW1hWy3e/duZs2aFXG+yy67jPr6+mSImjC08k8WucNjG9doNF2CUoqZM2cyY8YMvvjiCz7//HMaGxv59a9/HbBde3s7Q4cOZdmyZRHn/Pvf/05eXl6yRE4IWvkni6n3gyMrcMyRZYxrNJpuw5o1a8jMzOR73/seAHa7nccee4y//OUv/OEPf+Daa6/liiuuYNq0aVRXVzN27FgAmpubmT17NkVFRVx33XWce+65rF+/HoCRI0dy4MABqqurOfXUU7nttts4/fTTmTZtGi0tLZaydCZa+SeLotlwxROQOwIQ4+cVT2hnr0bTzdi2bRtnnXVWwFi/fv047rjjaG9v54MPPmDx4sWsWbMmYJs//OEP5Ofns3nzZu677z42bNhgOv8XX3zBT3/6U7Zt20ZeXh4vv/xy0s4lFnS0TzIpmq2VvUbTzVFKmUbKeMcvueQS+vfvH/L5unXrKC0tBWDs2LEUFRWZzj9q1CjGjx8PwFlnnUV1dXXihO8AnbLyFxG7iFSJyOue92UiUiMimzyvyzpDDo1Gownm9NNP95lrvBw+fJidO3dit9styy0bBTMjk5GR4fu/3W6nvb09fmETSGeZfUqB4Pzlx5RS4z2vv3eSHBqNRhPA1KlTaW5u5tlnnwXA5XJx5513cuutt5KdnW2536RJk1i61Ejc/PTTT9myZUunyJsokq78RWQ4UAL8OdnH0mg0mlgREV555RVeeuklTjrpJE4++WQyMzN55JFHwu73k5/8hP3791NUVMRvfvMbioqKyM3N7SSpO05n2PwfB34FBBev+JmI3AysB+5UStV1gixdx+alRoJXwy4j3HPq/dofoNF0E0aMGMFrr70WMn7rrbdy6623+t6PHDmSrVu3AkYhtb/+9a9kZmbyr3/9i6lTp3L88ccD+Oz6AwcO9G0P8Mtf/jJ5JxEjEq3dKq7JRS4HLlNK/UREJgO/VEpdLiIFwAFAAQ8DhUqp75vsPweYA1BQUHDWiy++GLcs7+928vLnTg62KgZkCtec7OD8oQ4aGxvp06dP3PNGw+C9bzNm+39hdx/1jblsGWwf81P2FVwUcf/OkLGjpIKMkBpyahnDk5uby4knnhjVti6XC7vdnhQ5jhw5wuWXX47T6UQpxYMPPsi0adNinieRMn755Zc0NDQEjF188cUblFITgrdNtvJfANwEtAOZQD9guVLqRr9tRgKvK6XGhptrwoQJKtgpEy0rqmqYt3wLLU6XbyzLYWfBzHHkNXzB5MmT45o3ah4ba9T2CSZ3BPxia+h4EJWVlcmXsYOkgoyQGnJqGcPz2Wefceqpp0a1bW+p6unF7NqIiKnyT6rNXyk1Tyk1XCk1ErgeWKOUulFECv02uxqIrAE7wMJV2wMUP0CL08XCVdsB4+YwsXwNo+ZWMLF8DSuqahIrgC71oNFouhldFef/qIiMxzD7VAM/TObBdtebZ9Ttrm/h/d3pPPfWsaeCmvoW5i03vPYzioclRoDc4RYrf13qQaPRdA2dluGrlKpUSl3u+f9NSqlxSqkipdSVSqnaZB57aF6W5fjLnzvDPhUkBF3qQaPRdDN6RXmHu6aPwWELzOBz2IS7po/hYKu5z8PqaSEudKkHjUbTzeg95R2Cs7c97wdkiukNwOppIW50qQeNpsdgt9sZN26c7/3111/P3Llzu1Ci2OkVyn/hqu04XYEK3ulSLFy1nWtOdvDcZ66QSKC7po/pbDE1Gk0SWFFVw8JV29ld38LQvCzumj6mw/68rKwsNm3aFNe+7e3tpKV1vertFWafGgsTTk19C+cPdbBg5jiG5WUhwLC8LBbMHJc4Z69Go+kyKrbuZd7yLdTUt6A4FtCR8Ig+D95SzgDr16/3hcOWlZUxZ84cpk2bxs0330xrayvf+973GDduHJMmTWLt2rUAPPPMM1x11VVceumljBkzhgcffNA391//+lfOOeccxo8fzw9/+ENcLlfI8WOh628/nYBdBJdJPoPdU8lvRvEwrew1mh7IorXVlgEdHfmbb2lp8VXqBJg3bx7XXXdd2H02bNjAunXryMrK4ne/+x0AW7ZsYcOGDVx99dV8/vnnAHz00Uds3bqV7Oxszj77bEpKSsjJyWHJkiW89957OBwOfvKTn/D8889z8803x30OvUL5myn+cOMajaZnsOfwUdPxjgZ0xGP2ufLKK8nKMnyJ69at4/bbbwfg5JNP5vjjj/cp/0suuYQBAwYAMHPmTNatW0daWhobNmzg7LPPBoybz+DBgzt0Dr1C+Q/LyzI1/QxLtFNXo9F0K4b0y6DW5AaQ8IAOD2lpabjdbgBaW1sDPvMvDR2uskJwbwERQSnFLbfcwoIFCxIma6+w+d81fQxZjsDaGdqpq9H0fEovHtmpf/sjR470dfQK17Hrwgsv5PnnnweMTl/ffPMNY8YYMr355pscOnSIlpYWVqxYwcSJE5k6dSrLli1j3759ABw6dIivv/66Q7L2CuU/o3iYdupqNL2QkrEFSfnb99r8vS9vmOcDDzxAaWkpF1xwQdhibT/5yU9wuVyMGzeO733vezzzzDO+pi+TJk3ipptuYvz48VxzzTVMmDCB0047jfnz5zNt2jSKioq45JJLqK3tWG5srzD7gHbqajS9lWT87VtF2lxwwQU+270/ZWVlAe8zMzN55plngNDCboMHD+b3v/99yBzXXXddRKdyLPQa5Z/KvL/bya/L1yQ0Tlmj0fRutPLv5qyoquGZrW20GT6k5BSe02g03YLg5jHJpFfY/FOZhau2+xS/l4QXntNoNL0Orfy7OeHKUWs0Gk28aOWfTDYvNbp4leUZPzcvjXmKcOWoNRqNJl608k8Wm5fCa3d4mrgo4+drd8R8A7hr+hjSg74lnaOg0Wg6ilb+yeKth8AZZJpxthjjMTCjeBi3jk3XOQoaTTeiq5rXJxId7ZMsEti39/yhDu75zuSOyaPR9FY2LzUWXQ27jNapU+/XvTXopJW/iNhFpEpEXve87y8ib4rIF56f+Z0hR6di1Z9X9+3VaDqNtM9eSYj51YzGxkamTp3KmWeeybhx41i5ciUA1dXVnHLKKdxyyy0UFRUxa9YsmpubAXjooYc4++yzGTt2LHPmzPHV+Jk8eTJ3330355xzDieffDLvvvtuh+WLRGeZfUqBz/zezwXeUkqdBLzled+z0H17NZouJ+Pd8oSYX83IzMzklVdeYePGjaxdu5Y777zTp8y3b9/OnDlz2Lx5M/369eMPf/gDAD/72c/4+OOP2bp1Ky0tLbz++uu++drb2/noo494/PHHA+r4J4ukK38RGQ6UAH/2G74KWOz5/2JgRrLl6HR0316NpsuRI7vNP4jD/BqMUop77rmHoqIivv3tb1NTU8PevXsBGDFiBBMnTgTgxhtvZN26dQCsXbuWc889l3HjxrFmzRq2bdvmm2/mzJkAnHXWWVRXV3dYvkh0hs3/ceBXQF+/sQKlVC2AUqpWREwLU4vIHGAOQEFBAZWVlQkXrrGxMSnzGgyGYr8aHYcAv2MN3vs2o3c8R8bRAxzNGMiO0Texr+CiTpYxMaSCjJAacmoZw5Obm8uRI0ei2ja771DsR0K7drn7DqUpyjmsePrpp6mtraWyshKHw8HYsWN9XbwAn4zNzc24XC7279/Pj3/8Y95++22GDx/OI488QkNDAy6XC5fLRXt7O0eOHKGlpQWn0xn1OfrT2toa9feSVOUvIpcD+5RSG0Rkcqz7K6WeBJ4EmDBhgvK2REsklZWVJGPeiGxeCu/90fdImnl0P6d9+UdOO/XUkKeDLpMxBlJBRkgNObWM4fnss88CCqGFo+WCuWS9+atA048jC9slZVHPYcXRo0cZOnQo/fv3Z+3atXzzzTe+KKCdO3eydetWvvWtb7Fy5UomT56Mw+FARBg5ciQul4vXXnuNWbNmYbfbsdvt5OTk0LdvX44ePYqIxCVfZmYmxcXFUW2bbLPPROBKEakGXgSmiMhfgb0iUgjg+bkvyXIkhiiTtip2VDBt2TSKFhcxbdk0KnZUhG6UoFBQjUZjTfupVyfc/Nre3k5GRgbf/e53Wb9+PRMmTOD555/nlFNO8W1z6qmnsnjxYoqKijh06BA//vGPycvL47bbbmPcuHHMmDHD15Wrq0jqyl8pNQ+YB+BZ+f9SKXWjiCwEbgHKPT9XJlOOhOBN2vIqbG/UAAT8IlXsqKDs/TJaXUYXn9qmWsreLwOgZHTJsfkSGAqq0WjCUDQ7ob62bdu2ccIJJzBw4EA++OCDkM+rq6ux2Wz86U9/Cvls/vz5zJ8/P2DsyJEjAaaagQMHdorNv6uSvMqBS0TkC+ASz/vuTZQr9UUbF/kUv5dWVyuLNi4K3FeHgmo0Kcef/vQnbrjhhhAFnop0mvJXSlUqpS73/P+gUmqqUuokz89DnSVH3ES5Ut/TtMd0s5BxHQqq0aQcP/rRj/j000+ZNm2a5TYjR45k69atnShVfOjyDtES5Up9SM4Q081CxnUoqEaj6UJ0eYdomXp/oM0fADFs/4+Nhan3U9Enh5b20FLLmfZMShkAD/YH5QKxw1m3wuX/kXRlX7GjgkUbF7GnaQ9DcoZQemZpoO9Bo9H0SrTyjxavkn7rIU+quABGNh8NO6n4f3dRNnAArcoZsFtuei7zHCMo2fr3Y4PKBeufNv5/+X8kTeSonc8ajabXoc0+sVA0G36x1WOqUQEfLeqXHaL4AbId2ZRsW2U+34ZnEi+jv0zROp81Gk2vQyv/eDBx/u5Js5tuuqdpj7HSN8NqPEFE7XzWaDRRU11dzdixYwPGysrK+O1vf8uHH37Iueeey/jx4zn11FMpKysL2O6qq67iW9/6VidKa41W/vFg4vwd0m6uyIfkDDFs/Ca0KxsTy9ewoio0/TwRRO181mh6MFElXSaIW265hSeffJJNmzaxdetWZs8+5tOrr69n48aN1NfX89VXXyVNhmjRyj8eTMI0S+vqyXQHdlrPdLsp3bvbdIWvFDzvmkJNfQvzlm9Jyg2g9MxSMu2ZgTLZMyk9szThx9JouiOrvllF2ftl1DbVolA+v1eybgD79u2jsLAQALvdzmmnneb77OWXX+aKK67g+uuv58UXX0zK8WNBK/94CA7TFDslTc2UHThEobMdUYpCZztlBw5Rsn9nwK4KQ/E3qgw2uE8GoMXpYuGq7QkXs2R0CWXnl1GYU4ggFOYUUnZ+mbWzNwE9hzWa7sSftv2pU/1ev/jFLxgzZgxXX301//3f/01r67Fjv/DCC9xwww3ccMMNvPDCC0k5fizoaJ948U8Z95R+KGlqpqSpOexu4vmnrxyl3PFncMKr7knsrg8NEU0EJaNLoovsibJ8hUaTSuxrMS8b1hG/l4hYjt9///1897vfZfXq1fztb3/jhRdeoLKykr179/Lll18yadIkRIS0tDS2bt0a4jvoTPTKPxGYJWxFQba08as0Y3U9NC8rwtZJRhea0/RABmeZVovvkN9rwIAB1NXVBYwdOnSIgQMHAnDCCSfw4x//mLfeeotPPvmEgwcPsmTJEurq6hg1ahQjR46kurq6y00/WvknCm8YaFm98TNKhspBshx27po+JonCRYEuNKfpgfzo9B8l3O/Vp08fCgsLeeuttwBD8b/xxhtMmjSJiooKXzevL774ArvdTl5eHi+88AJvvPEG1dXVVFdXs2HDBq38U5ZI9vGs/gBU5GQzbfhQikaOYNrwoVTkZAdstk8GsmDmOGYUD+ssyc3RheY0PZDpx02Pze8VJc8++yzz589n/PjxTJkyhQceeIATTjiB5557jjFjxjB+/Hhuuukmnn/+eXbu3Mk333zDeeed59t/1KhR9OvXj3/84x8dPcW40Tb/GFhRVcPCVduZcPhNytOfJoujxgdm9vF/+w0Vb95JWf9+tNqMe2ytI42ygcZNoaSpmVdycvnjsCHs2fxv/OFfx0ov+B9nXvpLXMQBqBpuRBlFaX8PW9Zh81JPpvIuQ7lPvd+8fIUuNKfpAUTt94qB0047jbVr14aMW63ma2pCo/k2btwIEFfHrkSglX+UrKiqYd7yLbQ4XSxJX3pM8Xvx2se9yrloNou2PkGrsyFgs1abjUX5eRxUffndwGzcns+9IWjrqw/x4tpBXOJ6mwWOP5NNm7FjDA7YsGUdGpvMHbtXPGG8gm8K2tmr0fRItPKPkoWrttPiNOL1h8oB842Cyzs7D5tutjstjd/kD8Rmqw8Yb3W18vJXT9HivJtfpS8lW9oCdwy6wVit7sOVdSjZudvasfuLrVrZazS9BK38o8Q/FHO3GshwsxuASXnn2qbakM2UMw9x1IeMA7jtRhRBpBtMuNV92LIO2rGr6QEopSxDLnsrXkdztGiHb5T4h2I+2j6bZpUeuIGJfdwsw1a5HWQ3XUFeunkIms2VDxg3GFM8N5hwq/uwZR20Y1eT4mRmZnLw4MGYlV1PRinFwYMHyczMjLyxh6Su/EUkE3gHyPAca5lS6gERKQNuA/Z7Nr1HKfV381m6B3dNH+Oz+b/qnsRZrs/5rn0NdnEjYoczvhNiMvE6mUJMM41NVLy7l7Js5XMGgxGCdvmI23ix2s6j7bMpd/w50PTjd4MJt7pfcMGCgKcC79ylZ5bCyU20r7ydNL/P2u2ZpGnHriZFGD58OLt27WL//v0Rt21tbY1JIXYFiZIxMzOT4cOjX8Ql2+xzFJiilGoUEQewTkT+1/PZY0qp3yb5+AnDG4rpjcKZnfYuaXhq+SgXfPI3OO480xtAQKSBNxvY2QI52SzKz2NPmp0h6XmUnjePktElnJFfw8JV6cw7DPPSX6KAA0iQA9bKpDQkZ4j1TccTSbTO+QN+zosMlYPsVgN43H09k1wTmZGE66bRJBqHw8GoUaOi2rayspLi4uIkS9QxukrGmJS/iJwPjPTfTyn1rNX2yngua/S8dXheKfusNqN4mHETeOwOaAiN9ql49yEWff7n8F2z/DJpA8pB5AKebX3HYQqwgMrKSiZPnhwwTemZpdare6zD2xau2k5N2/ks4/yA8Q9Wbe/6XAONRtNpSLR2MxF5DjgB2AR4y1QqpdQdEfazAxuAE4H/Ukrd7TH73AocBtYDdyql6kz2nQPMASgoKDgrGRlxjY2N9OnTJ6Z9LqqcgQTdwypysikb2D/AjGPDRpYtiyZ3E/n2fK7Iu4Jfrv+/vn0r/Ff+7S4uGfJ9zu5zdtQyftz4Ma/Vv0adq843v9n+/tz6RpPlZ89cmhN233DEcx27glSQU8uYOFJBzmTLePHFF29QSk0IHo9F+X8GnKbi9LKISB7wCnA7hq3/AMZTwMNAoVLq++H2nzBhglq/fn08hw6L2ao6Io+N9bRyPMa04UOpdYR/kMq0Z1LW0ELJ/p1U5GRz36ABOP0iFhw2Bw9PfDhkxe4vozcBbHd9C0Pzsrhr+piYVuwTy9dQY1JEblheFu/NnRL1PMHEdR27gFSQU8uYOFJBzmTLKCKmyj+WaJ+tQNzVkJRS9UAlcKlSaq9SyqWUcgNPAefEO2+XYFLP36qTlz+trlYWZRr3zvIB+QGKH8DpdlL+Ubnl/t5Es5r6FhTE1QvgruljyM7/hJwTyulzylxyTignO/+Trq8tpNFoOpVYlP9A4FMRWSUir3pf4XYQkUGeFT8ikgV8G/iniBT6bXY1xo0ldTCp4jkkPS+qXffYDYVfbzO/9PVHzeP/ITDRzEusvQAcuZvILFyOLb0eEbCl15NZuBxH7qao59BoNKlPLA7fsjjmLwQWe+z+NmCpUup1EXlORMZjmH2qgR/GMXfX4l/PHygNSrqywqrdow9/q5qnBs9FDbugajgTDl9BDZNCdomlF8CijYtwqkBntVMdNbJ/E1z/RKPRdF+iVv5KqbdFpADwehQ/UkqZd0o4ts9mICSGSSl1U0xSpgDB4ZX92ttpttsCTDuZbjeldcbKPtflpsHEVJTr8oSP+jVXEYCGnZSnP41qM5q/+OOfgBa2oBvW+QG1TbVMWzbNPEJJo9H0OKI2+4jIbOAj4FpgNvAPEZmVLMFSkZLRJayetZrNt2xm3WEbD+8/GNrW0RPaOe9QHWlBPX/T3G7mNTqNNybNVbI4yt2OwNLR/r0AvCUfwvUrDdfEItn9TTUaTfchFpv/r4GzlVK3KKVuxnDS3pccsXoAU++npE2xetduNlfvZPWu3QEtHkuampkf1PN3/oFDlLS2GxtY1NoZKgcZlpeFYETo+PcCCFfywYtZyYlw22s0mp5JLDZ/W5CZ5yA9rTbQ6/8OG54xMnbFDmfdCpf/R3xzef0Bbz0UEhbqxbznbwsrqmo4j4EMITR9XXKH894vzEMywxZ08x7TzzxlliEcbh5TgvwSugy0RpMaxKK83/BE+twqIrcCFUC3rscTNZuXwiNDYf3ThuIH4+f6p40bQrx4WzvOfCokNNTTyj2E5qwhzFu+hUfaro2qeJw/YQu6+eE1TxXmFEa1vSVev0TDTiNxzdsbILirWaoRqUubRtMDiFr5K6XuAp4EioAzgCeVUncnS7DOYvDetw2F1WaR+brhmY4fxKzB+4Tvh94QHFk86rzOVzxurvMH7HIPxK2EPQwy5gizqjYz6YTrVxrr9iH0xKbvfjc0etINTaMJIqbaPkqpl4GXkyRLlzB6x3OhCswfFSE0M16OO894eTtnZRmlnO9vfpwfpA/k0XZ/Ja9od0dOrA5X0C0R24fQE3sDhLuhaXOWpgcRUfmLyBHMi7EJRm2ffgmXqhPJOGrRNMWLRM7cjYhf2CbgW01WTLyNRSOGsqe/MKTdRemhOkoEhssBFjr+GzuKNDEigobLAVj5U2P/MEoo1n6lHepvmjvc3J+Ryr0BeuINTaMxIaLZRynVVynVz+TVN9UVP8DRDIumKV7OujX85+Hsw97Plt8WspqsSBfKvnrFE5YJtWl2ygb2pyInG4AMcfkUvw9XG/xvdJa2ih0VTFs2jaLFRUxbNq3j4Ztm52lS5iLlm77rZjeaXkJE5S8i/cO9OkPIZLJj9E0mzlgAgQn/J3y0Tzj78OalsOInlpE+i/LzaLUFOn29zd3D0nIo/OdEF+8fE1bnCT5fhvL6MiL4Jbo9PfGGptGYEI3NfwOG2ccsPEUBoxMqUSezr+AiTjv11GO299wYwhXD2YfbmsDttNzVqhBcNAXiIhG2gXs8Jp5w5+lp+v52ClRPjIqAEN0Yfx80mhQiovJXSkXXMieVCarTEzVh7cPhHbRD2l2mJaAj1v7JivywFU28f0z0Njt4vL8PGk0KEVOSlojki8g5InKh95UswVKCDtiHS+vqyQwq75DpdnPHIeuqnogd/u03EeeONt4/arQdXKPpccRS2+cHGM3YVwEPen6WJUesTibepJ5w9uEIK/SSpmbKgso7zNt/2CTj1w8J/3V5nbxWmbvNzub47P7aDq7R9DhiWfmXYlT0/FopdTFGtc7Q+gMphi/JK56kHrPkLa/D8/SrI+5e0tTMqp272fTVLv7yTRuV9TdSo45FH1XkZDNt+FCKRo5g2vChVGQ5LBOo/J28VjS0NcTn+A13nhqNJiWJJcmrVSnVKiKISIZS6p8ikvLtn0yTvGJJ6rGyD3+xOqrju7Bx4tG/Hhtoh9+kP82aHHtAT+BaRxplA/vjPnAIV1VNSOtGMyevGXE7frUdXKPpUcSi/Hd5unKtAN4UkTpgd3LE6jwsk7zicGYG1NLv66K0PTu8GQewE2j3f9N+ETedOZJF+x8PaAYPRijo4/n57FiyiZ8v2cQwvx6+sThz43b8ajSaHkMszVy8dowyEVkL5AJvJEWqTuRoxkAyj5pYr2J0ZlYEdfLyrtSBsDeAluxChmVlBTRkP7v4UvYs/r3p9vvSbL44Im8PXzCcueFMPv7E7fjVaDQ9hphLMovIMOArYBMELVtDt80UkY9E5BMR2SYiD3rG+4vImyLyhednflzSJwDTJK84nJmmsfURkrZc4iD73x7ivblT+Kq8hPfmTvGZc4ZYVNx0OwPn8/bwNSvS5rA5SJPA+3tMhds0Gk2PJZraPvMAh1LK62n8AKgH0oHFwIIwux8FpiilGkXEAawTkf8FZgJvKaXKRWQuMBfokgqhHUry8sOyPWKanaKRIyhod3NBcxPrsrPZk2anwOXmin6XsuTvA9n9twrfqt+r/EvPLA3pCazcDo7un+57n9avioxBq2hw1LNoYyFXnXgV7+x6hz1Ne8jNyEUpRUNbAzax4VZuCnMKdZtGjUYDRGf2uRa4wO/9QaVUsacp+yXTQa8AACAASURBVNuEUf5KKQU0et46PC8FXAVM9owvBirpIuUPJMSZ2c8xiAanSUtjERSwx2HnpX59wdPTd0+anacb19Dk7o+iOMCEM6N4mE9BP7jutzS7D6CceRzdP532w0ZL5LR+VWQWLkdsRhZxbVMtK79cSdn5ZQABNw63cvtW/CGK39OMRWezajS9i6hs/kop/2L3izxjLhExK4oTgOcmsQE4EfgvpdQ/RKRAKVXrmadWRAbHLnr3YUVVDYd2TsU2eJlPGZsigRUy3DYXGYNW+RR6i9NF2avbfKv/ktElPLI0i8b60JLTGYNWhRzLvwVjVOUdLKqNAvoGoNH0cMRYnIfZQORz4HSllDNoPAPYqpQ6KaoDGZFCrwC3A+uUUnl+n9UppULs/iIyB5gDUFBQcNaLL74YzaFiorGxkT59+nRojjsrmznYqnxmGHEYWbpi3qwrEAVH/lkeMDSnKJ3zhzoAuPUN8yYzfU6ZG938Qfzn8f/p+/95H/zA1NndmjGID7/155jmTcR17AxSQU4tY+JIBTmTLePFF1+8QSk1IXg8mpX/MuC/ReRnSqlmABHJAX7v+SwqlFL1IlIJXArsFZFCz6q/EDCxl4BS6kmM7mFMmDBBJaNwWGUCCpIdesNImmo/XOxbxeecUI6khynV4GFwu5sjQWMV39i55zuGTMM+XEONycrf5spHpdWFjHtbM5pF/hTmFAaea6V5mGvm0QMxX5NEXMfOIBXk1DImjlSQs6tkjCba5z4M5fyNiGwQkQ1ANbDX85klIjLIs+LHYyL6NvBP4FXgFs9mtwAr45I+DlZU1TCxfA2j5lYwsXwN7+92drj2/dC8UOvX0f3Twe0IHAx6ysp0u/n5oVAFvtur7Dcv5U35CTsyvsO69Du40rYOMMqrNu+dFjJ/pj2Tif1vom7Xt1HuwK82TdJCo3x0zR6NptcSTVVPFzDXE6Z5omf4S6VUwHJURC5RSr0ZtHshsNhj97cBS5VSr4vIB8BSEfk/wDcYTuWks6KqhnnLt9DiNCpn1tS38KyqIrt9BU51FMBX+x6IOirmruljAuYFcLRMYNbxx/PeoefY07SHgnYXFzU18o4n2mdIu4vSunrOaMwOmW9oXpbPHp/tbAFPd69yx58RJ6x0T6L9cDEtQObgVYijgcKcIUzsfxMvrh2EM+trMnMDbUJiZiOaen+gzR+6Zc2egOS5WFtNajQaU2JJ8moBtoTZ5DdAgPJXSm3GqAEUPNdBYGq0x04UC1dtD1DQAPaBq3yK30usJRC8DtqFq7YHJGsZ4zcZG3mdq35VO5tVOnPbQx2rd00fA2/dEVJ2IlvauCttKSvbJgGGmanxcDHD8rJYPXcKE8vX0OJsIee4VYgt8DydbmfoOaVA7fqQ5Lk4bs4ajSaUmBq4RyAO92PnstvEdu51zgYTawmEGcXDQurtBBCkaHe5B/Bo+2xedU8ynYuV5uUlhsrBkDHveXl/xnJOFX1yPH2Ebcaquk8O3UmlJrwxjUajARKr/MOHDXUDhuZlhThPlTPP1DGblBIIfvkEF837Oy6TSCu71zxj0Rx9txoQMub1OXjPL9pzSoVVdcIb02g0GiCO8g6pzF3Tx5DlCGyT6DowHYdkBIx1RgmEG84dEX586v1U9OkbUNL5tT59eZzrASPJK+ekh+hzylwahpQy7i/ncuLo7WQ57BzdPx0V7Gx2O/jq8wuZWL6GB9c8x7Rl05j77lzzVfWaX8bW1yCJJLwxjUajAaJU/iJiE5HzI2xW3XFxksuM4mEsmDmOYXlZCDAsL4ubjz+Xhyc9SGFOIYJQmFNI2fllSV/5zp8xjhvPO8630reLcON5xzF/xjgAKg5toWxALrWONJQItY40HhqQy3HjWhg0ZBuZhcuwpTUj4sknsDezoelPnDPuKwps53O0dibSng8IyplHS+1MnIeL2et+n5e+fixsEbjaNHtsfQ0i0JFoKrOaRbo+kUbTcaLN8HWLyO+Ab4XZZmbCpEoiwbb5yspKJo++pEvMHPNnjPMp+2AW7XiFVntoSefXj6wmf/hQWptCe/2KzU3VkRfYPPcdYApwLxPLA/MEzDKDLYmlr4EFHTUtebfR0T4aTWKJxea/WkSuAZarSGnBmg6zx+KZbI8NCGPvdtsD8waCndxWzmBLGnYaJqA4o4ES4bAtGV2ilb1Gk2BiUf7/DuQALhFpwYjuUUqpfkmRrJewoqrGNER0iBtq7aHbD3ED/axr94vbyBvwxsb3OaUWt19ROCtnsD+B9x055nhu2AnL58Dy24xWjlHcCLTDVqPpnsQS5983mYKkGlZKO9Y5gpPOvJU9S0dfTdlXr9BqOxZBm+lWlI6+Go47j7nvzjWd05Fm4+zHH6Ul90XDvCNgS68nc+gSGLoE5cpG3KCsvD1Kce1hb8EJITSIy/M+yiJwVk1mtMNWo+laoo72EYMbReQ+z/sRInJO8kTrvniVdk19C4pjSntFVU1M85glnXmbs5RMfpiyUVdT6FKIUhS6FGWjrqZk8sNhTSBt7kaac14Lset7HcO2tGaURLLaeZq0R4re9foEwpAIh21Hy29oNJpQYgn1/AOGw/c7nveNwH8lXKIUIJzSjgWzpDP/8ZLJD7P6+1t5YuTvWf39rZRMfti3TaFFpy/lzIts1w9XDlSEl/Jy4RdbPTeACETodVwyuoSrTrwKmxi/ajaxcdWJV0Vtw/c6jGubalEon8NY3wA0mo4Ri/I/Vyn1U6AVQClVh9HNq9cRSWlHi39BuLR+VeScUE6fU+bS96TfRFRuZitqb6cv5YrYZiEsbuXpzjn1/tAWl8FEKAJXsaOClV+u9M3pVm5WfrkyauUdzmGs0WjiJxbl7/QUaFNgVOwkQg/fnopZFc9w41Z4k868Xbls6fWIgEqri7i6LRldQtn5ZQH5CVkN13tKSnes0oZ3lU7RbLjiCb8ngKB5oygC11HlrR3GGk1yiEX5P4HRjKVARP4vsA54JClSdXPMMoWzHHajIFsMeJPOsgtWh+3KZUXJ6BJWz1rN5ls2s3rWan590XfJctgRe3NMcgRz7cl+RVaLZhsmoLIGmPmk50bg8Qlc8UTSo310hq9GkxxiifZ53lPL31uNc4ZS6rPkiJUY7l2xhRf+sROXUthFuOHcEZZJVbEQvoqnOf7RQXnZDpSCJsdHZBWsNm3KAkZC1J6yE7lQ7WdP5SB2nnkXNSMuZ+Gq7exzv0/mkNfBbnT6yk3PZd6581gwczz3bzRv9BIOpUAQHLYMlm5fwjufvkjpwUOUpPU/FtIZR6/jeKN9vNdrn/tCMguXg9/NUWf4ajQdJ9baPtmAtzZ/xwzLSebeFVv464ff+IqnuZTirx9+w70rwlWljp4ZxcN4b+4Uviov4b25UyIqfv/ooLpmJ42Oj8goXB5WSQ9xtjOE/dgEhrCf0zfcy9sv/xd73e+TUbjMp/gBGtoauHfdvThyN7Hg4rtNI2zKLyi3dhS7slDKhlO1ooBau3DfoP5UtB/sUJmHeKJ9/K+X83AxLbUzUc486MTyGxpNTyeWUM/7gcVAf2Ag8D8icm+yBOsoL/wjtCJmuPFkYhYdFKnMQoZb8fO6wKidbGnjTtsSz76h5R3aVbsvczbYH+BVmKaOYgVic4b2ABChfEA+OFuoePehuMItw8liRfD1aj9cTOOXc+lX+zirZ63Wil+jSQCxZPjeABQrpVoBRKQc2AjMT4ZgHcWsXHK48WQSSx8BMMI4b9+xhZLmUNv9UDmIOEK7f3nx2tKtSiKUjC6hal8VS7YvOSaLgKLddL56m42KnGzKshWtHvNNPPV5YlHYVlFTEw6/CY/d0W0bz2g0qUQsZp9qwH/JmAH8K6HSJBC7RSy71XgyMYsCMswYoRTmFLJ61mrObs4x/Xy3GmC5L0TnCH3jqzdCxsJdlkX5ebTagorMJTHc0ux6XWlbR3n6055SEyqhVUc1mt5ILMr/KLBNRJ4Rkf8BtgKNIvKEiDxhtoMnC3itiHwmIttEpNQzXiYiNSKyyfO6rOOnEkjEevmdiFl0kFXN/Yn9jbaPO8+8i1ey+wXU81+e3Y9H22d79g0t/KPcQt2ub1tmGq+oquHsxx+l/mhD1LLnutzsSTMpMkTiwi2DM3innVMTcr1+lbaULALbbUaTYazRaMyJxezziuflpTKKfdqBO5VSG0WkL7BBRLx9fh9TSv02huPHhDeqJxnRPrESHB2Ul+1AOc+hsdZj+3fUozzF117cMYgz8mtwjB3O/LqBtHnMMbWONB4cNICm9hzaDxfjzPoaR/6HQSt2oa65zVcfyN8J7XWi2o57DZvVKl8RGMqvFNOamliXnU2tI/RXJRHhlmYln19vfYLrL76D1R8No6a+BQGGygHzCSJkGGs0GnNiCfVcHO5zEXlZKXVN0D61QK3n/0dE5DMgtupnHSBcvfyO4q2aGW2NebMevxPL06j5V2B/+3aMMhE5Jy7yKX4vbpuLjEGraD9cTFqff4aYasTmJmPQKpr+VczCVdsDjud1ovYJV/oh+KYgwrrsbErr6ikb2D/A9JOocEurJLD3Dj3He3NX+/oR7FYDGW52A4iQYazRaMxJZA/f0eE+FJGRQDHwD2Ai8DMRuRlYj/F0EBLzKCJzgDkABQUFVFZWJlBcg8bGxpjn/bjxY1449AJOZUTr1DbVct+6+/j00085u8/ZUc8T3E/Yf7yvVclmj/K2chh7x2vqWwLOy3ss5cpG0qJPAtuTZqekydh+UX4ee9LsDGl3ccmA2eR8k0PlN8Yx4rmOgGVp6tqmWiorK31yP9o+m3LHn8mWNt82LlsG24dey74YjhuvnJ2JljFxpIKcXSVjpzRwF5E+wMvAz5VSh0Xkj8DDnn0eBn4HfD9kQqWeBJ4EmDBhgpo8eXICxTWorKwk1nkfWfaIT/F7cSonb7a+yV2X3xX1PMM+XGN6AxiWl0VOTqGpYlTOPKMNZfpgGpz7TD/3zuF/XseOFVu005B2I+SypKnZdxPYwyCG/CDwPOO5jgCFy8zPszCnkMmTJ/vkftU9CZyG7X+oHGSfDGTIjEc4rWg2p21eatj+o4gCilfOzkTLmDhSQc6ukjHpDdxFxIGh+J9XSi0HUErtVUq5lFJu4CkgpUpDJ6reTLgyEaVnlmIPqptnJ51Hp87lvblTmHfev5vG62NrIzv/k5BSE95jiT364nN2hJ8dCnQOKwUF7IcH8+H1f496LitKzyzFIRkBYw7J8JmU/K/Rq+5JTGp7gtPdL/LhVW8bCn7zUiPqR0cBaTQxkUjlH+JGFBEBngY+U0r9h9+4f5rp1RiRQylDourNmDWUXzBzHDOKh/HB5uNorLkad1seSoG7LY/Gmqv5YPNxwLHkqdz0XN983nr9mYXLceRuAo5F0ty/+d8YcOpCX6evaLABtqDa/yKeL1q5Yf3THb4BOBvG01o7M+A8W2tn4mwYD4S/RoCx4ncG3dB0FJBGE5G4zD4ikg+MUEpt9hu+22TTicBNwBYR2eQZuwe4QUTGY9ggqoEfxiNHV1F6ZmlAhArE7wA1cwSDN0qp2FOlM3Dc68QuGV3Coo2LaGgLXJ071VFfDL6/nA3OfTgcDpRKo12ZJ3UFzIPiifw8Lm8K4yNY/zR8sZqLGnZBVeyJVwtXbae5/gyoOyNk3HtdrK6RcVIW0T46CkijCUvUyl9EKoErPftsAvaLyNtKqX8HUEqtDt5HKbUO8/rCf49L2m6CN6onlmifWIk2QzmcCcosksbpdpKXkUdWWha7G2vDJncBljH+ATTsNL7kKFs7+rO7voW0flUhIa+764sj7wyGjb/BpGSHjgLSaMISi9knVyl1GJgJ/I9S6izg28kRq/sTXE450fVmos1QDmeCsroxNBxtYPWs1VFV/fc6fKPGxOQSrg3jwCHbAnoZ2NLrySxczsAh26I7nlnDmSj6DGg0vZ1YlH+ax1Y/G3g9SfJ0OSuqaphYvoZRcyuYWL4m5r68icIqE3lS8dcBivTC4ReGOH7BCJUUixtIlr0vE8vX4A5TJgIgExsXNDcHZBlX5EThM/AzuURqw5gxOLTAndicZAxeFfk4ENRwxrrPgPcGdPvXt+s+wBoNsdn8HwJWAe8ppT4WkdHAF8kRq2vwZsF6K0p6G7MDYUs2JwOzDOVJxV/zadtfArJhV365kqtOvIp3dr0TEjLpa8cYRJOzkVb3+7B/OpmFy02rixbmFDIi4yyWuytotxmmplpHGmUD+wP4wj5N8TO5hOvkVTK6hMPO/aZTWI2bEqHPgFkWcSyF6TSankjUK3+l1EtKqSKl1I8973cEZ/SmOolqzJ4o5s8Yx78WXMYzl+bwrwWXUWt7xVSRvrPrHVbPWm1Zqz8YbyZw++FiX6QNylD45ReUs+WWLayetZqP973nU/y+49lsLMr3f2II39oxUlhsZ3Tq0n2ANZpQYqnnf7KIvCUiWz3vi7pzPf94SFRj9mQRSZHGkmcQnCFs5l52280bzQQ6gRXkjkBZmFwiKffSM0tJk8AH0DRJS2inLt0HWKMJJRab/1PAPMAJ4AnzvD4ZQnUViWrMniwiKdLYVstCn1Pmkjl0ic/ZGmyPt7nyzY/n7wTOHQG/2Mrbk1cYvX6DzC/RdPIK9k1Y+SriRfcB1mhCiUX5ZyulPgoaixwsnkIkqjF7soikSM0+d9gcIStrpUBEGQlbQXrW3xxyzajbQspOZ7rdlHo7jEURVROpk9eijYtwuoNKZbidCTXJxNNKUqPp6cSi/A+IyAl4LAQiMgtPxc6eQsRs0iQSLhzy/d1OJpav4WdPAgeuJdcx2FSRminahyc+zDUnX4NNjn3VEWP7m/bA5qU88MlvuO7IIWxKgQJRcEVjE5c1NdOOjWdbJnL2mmom/W1q3FE0VqaX2qbahEXl+F8XQPcB1miILdrnpxhF1k4RkRrgK+DGpEjVhYTNJk0S4aJRnA3jeWZrG22ewJ39e04n62CR5U0puGVixY4KVn650jLyx4whjn7w2h1UpAuv5vXH7blbKOC1Pjmc1XqUkqZm+vT7iLbcf9HqcZKbRdFEirQZkjMkbGXPREXleK9LKhT60mg6g1iifXYopb4NDAJOUUpNUkpVJ02yXkS4aJSFq7b7FL+XWCKQzOYOR6Y90zDrOFvM2zf6Rfv8qX8f3EFN34OjaCJF2pSeWUp6mDVIq6uVh95/hKKnL2TsM+MoevpCHlzzXNTno9FozIm48hcR08pdXqecf8E2TXyEi0Y50sEIpFgiWgpzCo0yFc9+19jXqn2jZzya9o6RIm0Gb93FvXsP8Mf+fahNs5vapJraDyNpRlCpSqvjpa8fgzXwwJSboj43jUYTSDQr/74RXpoOEi4apaMRSFZz28Tm8wv4x/aXjC7xJWlZlXbwjlt+7nfMSJE2IzYu5Ormw6zetZtCi/lCO5Y5efmrp0y31Wg00RFR+SulHgz36gwhezrhYt3vmj6G9KBvKZYIpAuHXxgyptx20g99l4eK/pfSM0tZtHFRoKPZUy+ntK6eTHegzck/2udHhxqxBTWSD46iMYu0gWMO3Y+zm6jIyWba8KHGyj+ocJ1FfTvLHASNRhMd0Zh9fqWUelRE/hOTXCCl1B1JkayXISIBV9drVptRPIxPP/uUim/s7K5vYWheFndNHxOVU7piRwVLt5s1NXFT19zGPasXk1m4HKc6Cvg5WM8vo+SKJyh55Udw4FBA+8bSunoua2pmD4N4u/5a0tPzyRi8igbnvmNmIz/nrH9IZ7Bjt7aplvsGDcAm4PRf3ns0fmGfodQebgB7aCkJqxwEjUYTHdFE+3zm+bk+mYL0ZsLFupeMLuH8oQ7u+c7kmOdd8I8FKJPcXbEpMgYZhdO8it+Lr+7OrNWwfI7pvIIwpOxLFuFtZP//aAgtD+Sjal8Ve5v3mn7msgkhxh4RBtj6snrWah5c8xwvff1YQP0h5XYwa9Rt1gfUaDQRiaj8lVKveX4uTr44vZNklR8IbvLij1UDeP/jVgwaTlm28kX8+Aq7ZQslRFcwbf6H81myfUnMsh90HwE8Tt018PJXT+G212Fz5TNr1G3a2avRdJBozD6vhvtcKXVl4sTpnVjFuie3/IBg1czde9xF+Xm0OgNvIEaoZy4lWIdxLvjwP3hkaRa761voc8pL5u18IuCflPbAlJt4gO6r7I2nn+Q19tFokkE0Zp9vATuBF4B/EMOfsoiMAJ4FhgBu4Eml1CIR6Q8sAUZitHGcrZTqtR68RLaF9Cc7LZvmdpPSy57yDmYoBfv3jmZFVQ17nIdNt/GOWz2Z1Lfto9ETiqpwx6P7Y0pKC2HzUqOhTMMuI3IpxtaSsaDLRWtSlWhCPYdg9N0dCywCLgEOKKXeVkq9HWHfduBOpdSpwHnAT0XkNGAu8JZS6iTgLc/7Xkuk+jfx4rA5zD8Io41FoC2zinnLt5BlN4/kzc0wmsZnpVmEm7rTozpYYU4h2WnmzWHyMsI3mrFk81KjlWTDTkAday252czx3XF0uWhNqhJNqKdLKfWGUuoWDAX+JVApIrdHsW+tUmqj5/9HMJzHw4CrAK8PYTEwI075ewzJaAsZzuYfDrE30+J00dxmXrdPeaJxTJ8qAGxtvv866841Dde8bsx1rJ612jdXMEfbj5qOR+Sth4xWkv6YtJZMFLpctCZViaq2j4hkACXADRimmieA5bEcSERGAsUYpqMCpVQtGDcIERlssc8cYA5AQUEBlZWVsRwyKhobG5MybyKJV0YbNtzEbz5RtmbTdXtDW0PU8hzda9zX0/P/AaKwYeP8nPOZ1DqJyspKWlzmmcotrpa4zvmihl2mMquGXbxdWZnw7zvPnkedK9RiKQgLX1/I2X3OjnnOnvw72dmkgpxdJWM0Dt/FGCaf/wUeVEptjfUgItIHeBn4uVLqcLT12pVST2IUk2PChAkqGQW5UqHQV7wyuhdbKH6jprPlft4yzjZXPiotVLEV5hQyefJkbM/aLGzzgXO7W44nt2AHh537Kcgp4PIzL2fy6MnGh2FiyOL6XqqGe0w+gfx90HAWHXiE2qZaCltD8xHi5e4dd4f4awDcuFlav5TTTjstoMhdNI7hnvw72dmkgpxdJWM0Nv+bgJOBUuB9ETnseR0REXOPoB8i4sBQ/M8rpbxPC3s9zeDx/NwXn/iacFi1dcxSylOm2SJ9VjnIcti5ZtRtoZnHSlH61VZ4bCzX9i8O3VUZph4vjn5V5Ax7hQbnvsAG7pX3wWNjyXOZl3Rwt2czsXwNK6pqojxbD57sZH8q+uVR1jfdF1EV3LSmI3j9Nf7RSV78bf+RGtlrNJ1NNDZ/m1Kqr+fVz+/VVynVL9y+YizxnwY+CyoA9ypwi+f/twAr4z0BjTVmpR0AWrAZZZotVv82ezMLZo5jwsj+oV22AK8jdX3thyH7ikB6n698/RAKRq7FRVvANq2uVhb962Vo2Mncg3U4gks6uO0c3XsFNfUtzFu+JbYbQNFso5Vk7ghD2twRLBoyglYVmIWWSKdsyegSS9+F1/avHcOa7kYszVziYSLGk8MUEdnkeV0GlAOXiMgXGNFD5UmWo1fyzq53zD+I9K2LUVbCNPNYxFfS+V8OC6th+l6+Ki/hvblTOOzcb7rJHrshRElTMzMPH/E9iSglOOvPpv2w8VQRS/lqH0WzjZaSZfXwi63WIasJdMpGKmCnHcOa7kZSlb9Sap1SSpRSRUqp8Z7X35VSB5VSU5VSJ3l+HkqmHL2VjioWyy5baXamDR8a1RyWStFTwbMiJ5vl/fr6nkREFI68j0nrV+XbNtry1THLkMAkukitIqORwdvNLd6uaBpNLCR75a/pQuJVbl77dbj9ax1pkftBYqEUlfJVBi0fkB9Y1A0Qm4uMgtd876MtXx2TDAnu4RspVyOSDP4+AUisX0KjMUMr/x6MmcKxSxrKHf5rv/bkay33jxQpBHBCvxN8/zdViiOvpqTNsJHX28xlEU8lz2jKV4frfxwsA8TXwzfcMbyfzXt3HgALLlgQkqsRTSN77RPQdCax9PDVdANiqSPjr1j8t39y44vsaNyEws+Bi7ESuHbgBO49717f/lX7qnjp85eiLreQIRmsuHpFwNiKL1YErGhX9N1DyRVPREy8sotwzVnheypHW14hUg/fcNc13DGAqMs7BPdX9kf7BDSdjV75pxDxhAsGZw5X7atiR9Mm8Ab7eBbx1x0+wifVO7n3kzd8pRBMm79HWPUfVUe5bdWxcsu3rbqND/cERgV9uOdDbqt9E36xlSyL8g7K7cClFC9vqAkb7ZOIFXOk6xruGIlasXtLZkQ7Hi+RnpI0vQet/FOIeBRN8B+7aXllEV7q56nj41cKIdbm7178lX2w4g8eT7enm36OMh5KI0X7dHTFXLGjgnvW3RP2uoY7hqVTvKmW+R/ODzmWleK1ChW1Go8HnWug8Ucr/xQiVkVn9sduRYBRp2EXQNjtE4VV/SGxH4vwCRft05FIHu/1sTJpea9ruGOEO86S7Ut8N4BIivdwm3k4qtV4PGi/gsYfrfxTiFgVXSwr94BfBE8Dd7Os1URjfYxj5qVw0T4dieSJdH281zXcMax6FHt56fOXLI/lr3g7IxxV+xU0/mjln0LEquii/qNWimsPG52zcGQZJRKIv6b+eUPOM/2/2TbWxzDMHZGifaIth72iqoaJ5Wu49Y0mX9mIcNcnTdJ81zXcMbyfWeE9v0iKt/TM0tBSGn4yQMft9Z1xg9GkDjraJ4Wwit6xiiCx6hCWnZZNq6sVt3JjQ7j2qOLeQw1GSQS/xieFOYWWph+b2Din4BxTm/6Mk45V6H5q+lMhTt/zhpzHU9Of8sliWhranc6wKJvVh4uiAUPxz1u+hRankVjmLRsx4NRBNDjNy0oFl7UId4yS0SXMe3eeeb9kzxNMNN3aRCSguZq/DIloGpOspkGa1EQr/xQjUX2XogAAE/ZJREFUkqLzx+qP/f5v3R/VHFb7e1e905ZNM93P23jei1fRm2HVE0Dsbbw3d0pEGcFQ7gtXbWd3fQtDTW4YC1dt9yl+Ly1OF0f3TSdz4Eumph+n2xlyHsH4h4da4X1Si6R4TUtp+MkQzmwU7e9DrIuHeNFtLVMDrfx7MB39Y4+0f3ewIVut6gHfDcDKYXxgz+n8/srTmfuueSO5cOcRvBK3wvt5R69loq51LIuHeNBtLVMHrfx7OB39Yw+3fyIaz9vEvCdAtM5mq1X9wlXbfcp/aF4WNSY3gKF5WZSMnsKijYtMz6OfYxATy9eYPlFE60z3vxYduZaJuNadQSKeUDSdg3b4auKm9MxSn03biyAhNuT5H87njGfPYNzicZzx7BkB8e/eUhLBWI0HY7Wq9x+/a/oYshz2gM/9HclmjnSHZHBo51Rq6ltQEFJeOpoVd7DD1oqKHRW0tJufh3f/zqhP5JWlI07l7vA02FNIdkKeVv6auKnaVxXi5FQoqvYdq8g5/8P5LNm+xLe6dyt3QPx78eBi0xtI8eDQRjFmWIWB+o/PKB7GgpnjGOYZG5aXxYKZ43yreLNoHvuh2TTXnREwp3/CWTQr7mg61nnNJPVH600/X/HFCksZY61PFK0sHUkC65du3uLDalxjTmck5Gnlr4kbbwx7uPFI2yzauMj0BhJt4lGkVb2XGcXDeG/uFJ65NIf35k4JiSAKLoNxYM/ppsfzPlFEiu+HYw7bcEQyH/lHSQXLmGgzSiKSwKxueNG2btUYdEZCnrb5a+LGKkbffzzSNh01E8woHsYndWt4+auncNvrsLnyuWbUbRHDQyMRzk8AoQ5cszBPMBye05ZNC4jq8Xf4didzSCJMNg1HzTO2rcbN0NFCnWM+0yt/TdxYOWX9xyNt09HEo4odFby++wlUWh0ioNLqeH33Ex1+PI7micJ/JW7VLxmMG8B9793HvevuDXmMT3Thto6QCJNNIr5PXX+ocxLykqr8ReQvIrJPRLb6jZWJSE1QW8deTzinaHclGmdtpG2iyWwNR6Iej4Oda47cTT4/gbcfsb+fIJhIZiCn20m7ag+RUykVdj+rDOl4CedETITJpqOO6Y58nz2pYmlnOPiTvfJ/BrjUZPwx/7aOSZah2xPJKdpdKR5cjC3oV8iGLcBZe+9593LdmOt8K32b2LhuzHW+ngEQqlxiUTaJeDy2Wm06cjfx3twpvn7E4UxJwQ1joqWhrYGy88tCrqOXHfU7YpovHJFW1VZOZ6txMzrqmLbKKI9UZNDq3D5u/Dhq2bsTneHgT3YP33cA3Z83AtE4TrsjizYuwh1YDxQ37pBV2r3n3csnN3/Cllu28MnNnwQo/nCZrdGQiMfjRD09eM1Asd4ASkaXhFxHL/tazctPxEOk84zGjBcNHXFMxyuD1bm9Vv+axR7dn2Q7+LvK4fszEbkZWA/cqZSqM9tIROYAcwAKCgqorKxMuCCNjY1JmTcWwjlFKysru4WMZoRbpUUrb0fnuCTzEl5ofgGnOnYDcYiDSzIvMd3f7Fom4jwiyRSOSMe48K8XckXeFZzd5+yYZfEn0nlG+j30J1m/k7HI4I/VudW56rrl344/XfX33RXK/4/AwxglrB4Gfgd832xDpdSTwJMAEyZMUGbt9zqKVVu/zsT2rHWW6+TJk7uFjGYULjMv/FaYUxi1vB2dYzKTOW3HaVFHh5hdy0ScRySZwhXImzx5Miy2nq/OVcfS+qWcdtppHVr9RTrPWK5Dsn4n4/0urPbLt+d3y78df7rq77vTo32UUnuVUi6llBt4Cjins2XobnQ0y7WrSIRTKhFzdPTxOBnOtWCZrhtznel23u94cObgsPMlIsY70nl2VhZxR2SMdb8r8q5IuIw9hU5f+YtIoVLKe4u+GtgabvvegNcG7m2UbhMb1558bYBtvDviH+te21RLYU5hzDHZnVVpMtEymMWih5vD6jsuHlzMtGXT2N+6P6Kc3taQ4X4vwsXIl4wuoWpfVYAMV514VcDnka7D/A/nH9v/2cT/nsb7+2C1X843OQmTLZhI+QiRPk/2tYyEJLJHaMjkIi8Ak4GBwF7gAc/78Rhmn2rgh343A0smTJig1q9fn3AZu6tJxR8tY+JIhJxmFT3TJA0RCXBe+5e/jnaeaAiOlgo3n78MkT6PhDcqLVp5ugPJ+r3s6LXuzGspIhuUUhOCx5Md7XODUqpQKeVQSg1XSj2tlLpJKTVOKVWklLoyGsWv0XQnzCJL2lV7SNRSJFNNLG02/bGKAosUzdPRqKZUjUpLBh291t3hWuoMX40mRmLJIQi3bbyp+pEazluNdzQnIppyHr2Fjl7r7nAttfLXaGIklhyCcNvGm6pvFfMeKeehozkRicoD6Al09Fp3h2vZ+741jcYPb0mAcYvH+V6RymuYRZakSRp2CawF5LA5AqJUgkt4HN/3+IiVQc1wK7evfIF/SYOW9paQUhnB0TyRSmkks/dCtKRCmYZI1zJS1FJ3iPDTVT01vRYrh6u3vAZg6nwziyy5cPiFvPz5ywHb+QdTBDv43MrNh3s+5Lwh5/H1ka8t8wD6pvWlydUUYg6obarl3nX3BjiZ64/W47A5yHXkcrjtsGmESbgm8WYy+l+Hrxu+NpXRajweUqkNZLhrGSlqqTtE+CU12ieR6GifyV0tRlhSQUYIlHPasmlha8bYxMYnN38S1bxWcxXmFLJ61mrOePYMy0S+T27+hHGLx1nOveWWLRFlNTtmZ8uYCCLJGCvJ+r1MpJzJ/tvpkmgfjaY7E8nRGYvzLdkOvkQ4mVPBCZkqbSBTRc5waOWv6bVEcnTG4nxLtoMvEU7mVHBCdkYd+0SQKnKGQyt/Ta8lUg3+WJxvHXXwndDvBNPPveNWTmaHzREw5rA5aHY2mzpLrc7X223snALzSiteGa16CwSPd6Q3RUdKTHSmozgRpTC88t7+9e1d4ti2l5WVdeoB4+XJJ58smzNnTsLnra6uZuTIkQmfN5FoGROHv5wn55/MsD7D2HZwG43ORt82NrExe8zsmJxv/nM1OZsozClk7jlzfQ6+C4dfyKHWQ3x26DMUKuQY1596Pau/Wk3d0WMFbk/odwIrrl5hOf89597DlOOm+MbyMvJoc7XR4jLaTzY6G1lXs45hfYZxcv7Jlufr3fZAywEmFExgd9NuUxmvPPFKqvZWsatxl2+/84acx1PTn/K99zqNvW0tFYptB7dxqPUQFw6/sMPX0Qqvo9jbe8B77vm2fCaePDHicWMlXjkjyev9rhLJgw8+WFtWVvZk8Lh2+KaAo1LLmDhSQc54ZYzFCdlRh6WVjJGcxsnC6nzy7fm8c+M7STtuvCTasR0O7fDVaHo4sTghk+Ww7CqnsZXcdS7TViFdTndwGGvlr9H0EGJxQibLYdlVTmMrufPt+Uk9brx0B4exVv4aTTehow7AWJyQyard31WZq4mo5+/vML7gxQuY9MKkpDmPu0PvBJ3hq9F0AxKR2RpLLfxk9VEoHlzMss+X4VIu35hd7BQPLu7QvJHoaD3/4Ovv37Q+GVnGieiF0VG08tdougHhSgDH2hwnlptFopXNoo2LAhQ/gEu5Yj6PeDA7n8pvKqPaN1J57Xi+i0h45e01bRw1Gk0o3cEBmAhS9Tyika+7n0OsaOWv0XQDuoMDMBGk6nlEI193P4dYSaryF5G/iMg+EdnqN9ZfRN4UkS88P7unO16j6US6gwMwEaTqeUTK9k6Fc4iVZK/8nwEuDRqbC7yllDoJeMvzXqPp1ZSMLqHs/DIKcwoBI9kn2t663Qn/8xCky84j1sipYLnzMvLITc8New6p0HcgHEl1+Cql3hGRkUHDV2E0cQdYDFQCdydTDo0mFehqB2CiSIYjORbijZyKRe5U6jtgRVfY/Au8Tds9Pwd3gQwajaaH0tFG9d3lGMkm6bV9PCv/15VSYz3v65VSeX6f1ymlTO3+IjIHmANQUFBw1osvvphw+RobG+nTp0/C500kWsbEkQpyahk7xu1f32752X8e/5/d7hjJvpYXX3yxaW2frojz3ysihUqpWhEpBPZZbaiUehJ4EozCbsl4FE6FR2wtY+JIBTm1jB2jcFmhZdG0RMmcyGP0pjj/V4FbPP+/BVjZBTJoNJoUIhbnamdEHKVqVJM/SV35i8gLGM7dgSKyC3gAKAeWisj/Ab4BOq9dvUajSTlida52RumEZJXH6EySHe1zg8VHU5N5XI1G03OIp/RFZ0ROdXVUU0fRGb4ajaZbk6olI7o7WvlrNJpuTaqWjOjuaOWv0Wi6NT3Budod0SWdNRpNt6YnOFe7I1r5azSabk+qO1e7I9rso9FoNL0Qrfw1Go2mF6KVv0aj0fRCtPLXaDSaXohW/hqNRtMLSXpJ50QhIvuBr5Mw9UDgQBLmTSRaxsSRCnJqGRNHKsiZbBmPV0oNCh5MGeWfLERkvVmt6+6EljFxpIKcWsbEkQpydpWM2uyj0Wg0vRCt/DUajaYXopW/p1NYN0fLmDhSQU4tY+JIBTm7RMZeb/PXaDSa3ohe+Ws0Gk0vRCt/jUaj6YX0KuUvItUiskVENonIes9YfxF5U0S+8PzM70L5xnhk874Oi8jPRaRMRGr8xi/rAtn+IiL7RGSr35jltROReSLypYhsF5HpXSjjQhH5p4hsFpFXRCTPMz5SRFr8rumfOkPGMHJafsfd6Fou8ZOvWkQ2eca75FqKyAgRWSsin4nINhEp9Yz///bONcSqKorjvz9a9i7sIWKZZqlFkAoZPTRIkYzSHhSKxJRC9KIkjAQh6lNNkB8ielI4vSw0IyssSaLM3mk6iqaWUZJZFFGZhtrqw15Xz1zunbJ09smzfnC4+66z59z/rLNmnX32nb1OaeKyE43549LMKrMBXwHH1NnuA6Z7ezrQmluna+kGfAecCNwFTMusZyQwDFj5d74DTgOWAz2A/sAXQLdMGscA3b3dWtDYr9ivBL5seI7L5Mu6/fcDd+b0JdAbGObtw4G17q/SxGUnGrPHZaVG/k0YD7R5uw24NKOWIqOAL8xsX6xq3mPM7B3gpzpzM9+NB543sz/MbAOwHhieQ6OZLTSzHf72A+D4fa3j72jiy2aUxpc1JAm4Cpi9r3V0hpltMrOl3v4VWA30oURx2UxjGeKyasnfgIWSPpV0ndt6mdkmSCcKOC6buo5MoOMf181+i/hkzqmpOpr5rg/wTaHfRrflZjKwoPC+v6Rlkt6WNCKXqAKNznEZfTkC2Gxm6wq2rL6U1A8YCnxISeOyTmORLHFZteR/rpkNA8YCN0kamVtQIyQdCIwD5rjpYWAAMATYRLrlLjNqYMv6P8WSZgA7gGfdtAnoa2ZDgduA5yQdkUsfzc9x6XwJTKTjwCSrLyUdBrwITDWzXzrr2sDWJb5spjFnXFYq+ZvZt/76PfAS6ZZvs6TeAP76fT6FuxgLLDWzzQBmttnMdprZn8DjdMFt/z+kme82AicU+h0PfNvF2nYhqQW4GJhkPrHqt/4/evtT0vzvwFwaOznHZfNld+By4IWaLacvJR1ASqrPmtk8N5cqLptozB6XlUn+kg6VdHitTfrCZSUwH2jxbi3Ay3kUdqDDyKoWyM5lJN1loJnv5gMTJPWQ1B84Bfgogz4kXQjcAYwzs98L9mMldfP2Sa7xyxwaXUOzc1waXzqjgTVmtrFmyOVL/+7hCWC1mc0s7CpNXDbTWIq47IpvlcuwASeRvulfDqwCZrj9aGARsM5fe2bWeQjwI3BkwfY00A6sIAVw7wy6ZpNuSbeTRlBTOvMdMIM0avkcGJtR43rSPO9nvj3ifa/wOFgOLAUuyezLpue4LL50+yzg+rq+WXwJnEeatllROL8XlSkuO9GYPS6jvEMQBEEFqcy0TxAEQbCbSP5BEAQVJJJ/EARBBYnkHwRBUEEi+QdBEFSQSP7BfoWk3+reXyPpwVx6gqCsRPIPggK+grX0/F90BuUlkn9QGSSdKGmRF09bJKmv22dJminpLaBV0vmFeurLCivDb5f0sf/83W7r53XZ29w+V9Ihvm+U/3y7F2vrIWm4pHm+f7zXbj9Q0kGSvnT7AEmvewHCxZIGN9LZ9R4M9idi9BDsbxwsf8iI05O0YhbgQeApM2uTNBl4gN3lfgcCo81sp6RXgJvMbIkX5NomaQxpqf1wUoGw+V4Y8GtgEGkF7BJJTwI3+lTTLGCUma2V9BRwg2sY6p85glTG4UzS32Kt2uNjpFW06ySdBTwEXFCvcy/4KqgwMfIP9je2mtmQ2gbcWdh3NvCct58mLb2vMaeQUJcAMyXdAhxlqe76GN+WkZbdDyZdDAC+MbMl3n7GjzsI2GBma93eBoz0Y62XdCrpQjKT9OCUEcBiv9icA8zxi9ijpAeCNNIZBP+aGPkHVaZY22TLLqPZvZJeI9Vg+UDSaNJo/x4ze7R4AK/RXl8jxWhcPrjGYlLl1u3Am6Q7hG7ANNKA7Ge/cDViSxN7EOwRMfIPqsR7pIfkAEwC3m3USdIAM2s3s1bgE9Io/w1gso/MkdRHUu0hIX0lne3tiX7cNUA/SSe7/WrgbW+/A0wF3jezH0iFyAYDqyzVet8g6Ur/HEk6Yy/87kHQgUj+QZW4BbhW0gpSMr61Sb+pklZKWg5sBRaY2ULSlNH7ktqBuaRnskJ6NF+LH7cn8LCZbQOuJU3ftAN/ArWHcX8I9CJdBCBVfFxhu6ssTgKm+OevIj1+MAj2KlHVMwj+Az7t86qZnZ5ZShDsETHyD4IgqCAx8g+CIKggMfIPgiCoIJH8gyAIKkgk/yAIggoSyT8IgqCCRPIPgiCoIH8BKbpnrcb80VoAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for origin, group in cars.groupby('Origin'):\n", " plt.plot(group['Horsepower'], group['Miles_per_Gallon'],\n", " 'o', label=origin)\n", "plt.legend(title='Origin')\n", "plt.xlabel('Horsepower')\n", "plt.ylabel('Miles_per_Gallon');\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With matplotlib, the user has to manually perform a group-by operation and label the axes and legend.\n", "By contrast, with Altair's declarative approach, the user only has to specify *what* should happen, not *how*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Documentation\n", "\n", "You can learn more about Altair at its documentation site:\n", "\n", "- [Altair Documentation](http://altair-viz.github.io)\n", "\n", "Additionally, it can be useful when using Altair to understand the Vega-Lite library that underlies it. Vega-Lite's documentation can be found here:\n", "\n", "- [Vega-Lite Documentation](https://vega.github.io/vega-lite/docs/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Index of Notebooks\n", "\n", "This repository contains a number of notebooks that provide a tutorial and examples of Altair's usage:\n", "\n", "- [Tutorial](02-Tutorial.ipynb)\n", "- [Scatter Charts](03-ScatterCharts.ipynb)\n", "- [Bar Charts](04-BarCharts.ipynb)\n", "- [Line Charts](05-LineCharts.ipynb)\n", "- [Area Charts](06-AreaCharts.ipynb)\n", "- [Layered Charts](07-LayeredCharts.ipynb)\n", "- [Cars Dataset](08-CarsDataset.ipynb)\n", "- [Example: Measles Data](09-Measles.ipynb)\n", "\n", "If you are browsing these notebooks on Github or nbviewer, a live version of these notebooks is available by clicking on the following badge:\n", "\n", "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/altair-viz/altair_notebooks/master?urlpath=lab/tree/notebooks/Index.ipynb)\n", "\n", "In addition, you can see a number of Altair example plots in [Altair's example gallery](https://altair-viz.github.io/gallery/)." ] } ], "metadata": { "anaconda-cloud": {}, "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.7.6" }, "nav_menu": {}, "toc": { "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": "1", "toc_cell": false, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }