{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "2021-06-15-tests.ipynb",
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "LeFKT-FS_HK_"
},
"source": [
"## Develop an interactive visualisation with altair"
]
},
{
"cell_type": "code",
"metadata": {
"id": "RDwrboyB_NaU"
},
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import altair as alt"
],
"execution_count": 16,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 202
},
"id": "yurcBAFo_uZK",
"outputId": "c919d04d-ff59-4ca7-fafa-ff4c1f4705f3"
},
"source": [
"url = \"https://gist.githubusercontent.com/seankross/a412dfbd88b3db70b74b/raw/5f23f993cd87c283ce766e7ac6b329ee7cc2e1d1/mtcars.csv\"\n",
"cars = pd.read_csv(url)\n",
"cars.head()"
],
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>model</th>\n",
" <th>mpg</th>\n",
" <th>cyl</th>\n",
" <th>disp</th>\n",
" <th>hp</th>\n",
" <th>drat</th>\n",
" <th>wt</th>\n",
" <th>qsec</th>\n",
" <th>vs</th>\n",
" <th>am</th>\n",
" <th>gear</th>\n",
" <th>carb</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Mazda RX4</td>\n",
" <td>21.0</td>\n",
" <td>6</td>\n",
" <td>160.0</td>\n",
" <td>110</td>\n",
" <td>3.90</td>\n",
" <td>2.620</td>\n",
" <td>16.46</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Mazda RX4 Wag</td>\n",
" <td>21.0</td>\n",
" <td>6</td>\n",
" <td>160.0</td>\n",
" <td>110</td>\n",
" <td>3.90</td>\n",
" <td>2.875</td>\n",
" <td>17.02</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Datsun 710</td>\n",
" <td>22.8</td>\n",
" <td>4</td>\n",
" <td>108.0</td>\n",
" <td>93</td>\n",
" <td>3.85</td>\n",
" <td>2.320</td>\n",
" <td>18.61</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Hornet 4 Drive</td>\n",
" <td>21.4</td>\n",
" <td>6</td>\n",
" <td>258.0</td>\n",
" <td>110</td>\n",
" <td>3.08</td>\n",
" <td>3.215</td>\n",
" <td>19.44</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Hornet Sportabout</td>\n",
" <td>18.7</td>\n",
" <td>8</td>\n",
" <td>360.0</td>\n",
" <td>175</td>\n",
" <td>3.15</td>\n",
" <td>3.440</td>\n",
" <td>17.02</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" model mpg cyl disp hp ... qsec vs am gear carb\n",
"0 Mazda RX4 21.0 6 160.0 110 ... 16.46 0 1 4 4\n",
"1 Mazda RX4 Wag 21.0 6 160.0 110 ... 17.02 0 1 4 4\n",
"2 Datsun 710 22.8 4 108.0 93 ... 18.61 1 1 4 1\n",
"3 Hornet 4 Drive 21.4 6 258.0 110 ... 19.44 1 0 3 1\n",
"4 Hornet Sportabout 18.7 8 360.0 175 ... 17.02 0 0 3 2\n",
"\n",
"[5 rows x 12 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 2
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 368
},
"id": "JJHXj8RQAKEG",
"outputId": "f6bfcc2e-af79-4e6a-e577-c9632bb37f28"
},
"source": [
"chart = alt.Chart(cars)\n",
"cars_chart = chart.mark_point().encode(\n",
" x = 'wt:Q',\n",
" y = 'mpg:Q'\n",
")\n",
"cars_chart"
],
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"alt.Chart(...)"
],
"text/html": [
"\n",
"<div id=\"altair-viz-29c6b01527e346089724182068ea229b\"></div>\n",
"<script type=\"text/javascript\">\n",
" (function(spec, embedOpt){\n",
" let outputDiv = document.currentScript.previousElementSibling;\n",
" if (outputDiv.id !== \"altair-viz-29c6b01527e346089724182068ea229b\") {\n",
" outputDiv = document.getElementById(\"altair-viz-29c6b01527e346089724182068ea229b\");\n",
" }\n",
" const paths = {\n",
" \"vega\": \"https://cdn.jsdelivr.net/npm//vega@5?noext\",\n",
" \"vega-lib\": \"https://cdn.jsdelivr.net/npm//vega-lib?noext\",\n",
" \"vega-lite\": \"https://cdn.jsdelivr.net/npm//vega-lite@4.8.1?noext\",\n",
" \"vega-embed\": \"https://cdn.jsdelivr.net/npm//vega-embed@6?noext\",\n",
" };\n",
"\n",
" function loadScript(lib) {\n",
" return new Promise(function(resolve, reject) {\n",
" var s = document.createElement('script');\n",
" s.src = paths[lib];\n",
" s.async = true;\n",
" s.onload = () => resolve(paths[lib]);\n",
" s.onerror = () => reject(`Error loading script: ${paths[lib]}`);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" });\n",
" }\n",
"\n",
" function showError(err) {\n",
" outputDiv.innerHTML = `<div class=\"error\" style=\"color:red;\">${err}</div>`;\n",
" throw err;\n",
" }\n",
"\n",
" function displayChart(vegaEmbed) {\n",
" vegaEmbed(outputDiv, spec, embedOpt)\n",
" .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));\n",
" }\n",
"\n",
" if(typeof define === \"function\" && define.amd) {\n",
" requirejs.config({paths});\n",
" require([\"vega-embed\"], displayChart, err => showError(`Error loading script: ${err.message}`));\n",
" } else if (typeof vegaEmbed === \"function\") {\n",
" displayChart(vegaEmbed);\n",
" } else {\n",
" loadScript(\"vega\")\n",
" .then(() => loadScript(\"vega-lite\"))\n",
" .then(() => loadScript(\"vega-embed\"))\n",
" .catch(showError)\n",
" .then(() => displayChart(vegaEmbed));\n",
" }\n",
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"data\": {\"name\": \"data-dd9b7841dffa79dd9d0fa604fc4587af\"}, \"mark\": \"point\", \"encoding\": {\"x\": {\"type\": \"quantitative\", \"field\": \"wt\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"mpg\"}}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.8.1.json\", \"datasets\": {\"data-dd9b7841dffa79dd9d0fa604fc4587af\": [{\"model\": \"Mazda RX4\", \"mpg\": 21.0, \"cyl\": 6, \"disp\": 160.0, \"hp\": 110, \"drat\": 3.9, \"wt\": 2.62, \"qsec\": 16.46, \"vs\": 0, \"am\": 1, \"gear\": 4, \"carb\": 4}, {\"model\": \"Mazda RX4 Wag\", \"mpg\": 21.0, \"cyl\": 6, \"disp\": 160.0, \"hp\": 110, \"drat\": 3.9, \"wt\": 2.875, \"qsec\": 17.02, \"vs\": 0, \"am\": 1, \"gear\": 4, \"carb\": 4}, {\"model\": \"Datsun 710\", \"mpg\": 22.8, \"cyl\": 4, \"disp\": 108.0, \"hp\": 93, \"drat\": 3.85, \"wt\": 2.32, \"qsec\": 18.61, \"vs\": 1, \"am\": 1, \"gear\": 4, \"carb\": 1}, {\"model\": \"Hornet 4 Drive\", \"mpg\": 21.4, \"cyl\": 6, \"disp\": 258.0, \"hp\": 110, \"drat\": 3.08, \"wt\": 3.215, \"qsec\": 19.44, \"vs\": 1, \"am\": 0, \"gear\": 3, \"carb\": 1}, {\"model\": \"Hornet Sportabout\", \"mpg\": 18.7, \"cyl\": 8, \"disp\": 360.0, \"hp\": 175, \"drat\": 3.15, \"wt\": 3.44, \"qsec\": 17.02, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 2}, {\"model\": \"Valiant\", \"mpg\": 18.1, \"cyl\": 6, \"disp\": 225.0, \"hp\": 105, \"drat\": 2.76, \"wt\": 3.46, \"qsec\": 20.22, \"vs\": 1, \"am\": 0, \"gear\": 3, \"carb\": 1}, {\"model\": \"Duster 360\", \"mpg\": 14.3, \"cyl\": 8, \"disp\": 360.0, \"hp\": 245, \"drat\": 3.21, \"wt\": 3.57, \"qsec\": 15.84, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 4}, {\"model\": \"Merc 240D\", \"mpg\": 24.4, \"cyl\": 4, \"disp\": 146.7, \"hp\": 62, \"drat\": 3.69, \"wt\": 3.19, \"qsec\": 20.0, \"vs\": 1, \"am\": 0, \"gear\": 4, \"carb\": 2}, {\"model\": \"Merc 230\", \"mpg\": 22.8, \"cyl\": 4, \"disp\": 140.8, \"hp\": 95, \"drat\": 3.92, \"wt\": 3.15, \"qsec\": 22.9, \"vs\": 1, \"am\": 0, \"gear\": 4, \"carb\": 2}, {\"model\": \"Merc 280\", \"mpg\": 19.2, \"cyl\": 6, \"disp\": 167.6, \"hp\": 123, \"drat\": 3.92, \"wt\": 3.44, \"qsec\": 18.3, \"vs\": 1, \"am\": 0, \"gear\": 4, \"carb\": 4}, {\"model\": \"Merc 280C\", \"mpg\": 17.8, \"cyl\": 6, \"disp\": 167.6, \"hp\": 123, \"drat\": 3.92, \"wt\": 3.44, \"qsec\": 18.9, \"vs\": 1, \"am\": 0, \"gear\": 4, \"carb\": 4}, {\"model\": \"Merc 450SE\", \"mpg\": 16.4, \"cyl\": 8, \"disp\": 275.8, \"hp\": 180, \"drat\": 3.07, \"wt\": 4.07, \"qsec\": 17.4, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 3}, {\"model\": \"Merc 450SL\", \"mpg\": 17.3, \"cyl\": 8, \"disp\": 275.8, \"hp\": 180, \"drat\": 3.07, \"wt\": 3.73, \"qsec\": 17.6, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 3}, {\"model\": \"Merc 450SLC\", \"mpg\": 15.2, \"cyl\": 8, \"disp\": 275.8, \"hp\": 180, \"drat\": 3.07, \"wt\": 3.78, \"qsec\": 18.0, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 3}, {\"model\": \"Cadillac Fleetwood\", \"mpg\": 10.4, \"cyl\": 8, \"disp\": 472.0, \"hp\": 205, \"drat\": 2.93, \"wt\": 5.25, \"qsec\": 17.98, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 4}, {\"model\": \"Lincoln Continental\", \"mpg\": 10.4, \"cyl\": 8, \"disp\": 460.0, \"hp\": 215, \"drat\": 3.0, \"wt\": 5.4239999999999995, \"qsec\": 17.82, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 4}, {\"model\": \"Chrysler Imperial\", \"mpg\": 14.7, \"cyl\": 8, \"disp\": 440.0, \"hp\": 230, \"drat\": 3.23, \"wt\": 5.345, \"qsec\": 17.42, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 4}, {\"model\": \"Fiat 128\", \"mpg\": 32.4, \"cyl\": 4, \"disp\": 78.7, \"hp\": 66, \"drat\": 4.08, \"wt\": 2.2, \"qsec\": 19.47, \"vs\": 1, \"am\": 1, \"gear\": 4, \"carb\": 1}, {\"model\": \"Honda Civic\", \"mpg\": 30.4, \"cyl\": 4, \"disp\": 75.7, \"hp\": 52, \"drat\": 4.93, \"wt\": 1.615, \"qsec\": 18.52, \"vs\": 1, \"am\": 1, \"gear\": 4, \"carb\": 2}, {\"model\": \"Toyota Corolla\", \"mpg\": 33.9, \"cyl\": 4, \"disp\": 71.1, \"hp\": 65, \"drat\": 4.22, \"wt\": 1.835, \"qsec\": 19.9, \"vs\": 1, \"am\": 1, \"gear\": 4, \"carb\": 1}, {\"model\": \"Toyota Corona\", \"mpg\": 21.5, \"cyl\": 4, \"disp\": 120.1, \"hp\": 97, \"drat\": 3.7, \"wt\": 2.465, \"qsec\": 20.01, \"vs\": 1, \"am\": 0, \"gear\": 3, \"carb\": 1}, {\"model\": \"Dodge Challenger\", \"mpg\": 15.5, \"cyl\": 8, \"disp\": 318.0, \"hp\": 150, \"drat\": 2.76, \"wt\": 3.52, \"qsec\": 16.87, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 2}, {\"model\": \"AMC Javelin\", \"mpg\": 15.2, \"cyl\": 8, \"disp\": 304.0, \"hp\": 150, \"drat\": 3.15, \"wt\": 3.435, \"qsec\": 17.3, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 2}, {\"model\": \"Camaro Z28\", \"mpg\": 13.3, \"cyl\": 8, \"disp\": 350.0, \"hp\": 245, \"drat\": 3.73, \"wt\": 3.84, \"qsec\": 15.41, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 4}, {\"model\": \"Pontiac Firebird\", \"mpg\": 19.2, \"cyl\": 8, \"disp\": 400.0, \"hp\": 175, \"drat\": 3.08, \"wt\": 3.845, \"qsec\": 17.05, \"vs\": 0, \"am\": 0, \"gear\": 3, \"carb\": 2}, {\"model\": \"Fiat X1-9\", \"mpg\": 27.3, \"cyl\": 4, \"disp\": 79.0, \"hp\": 66, \"drat\": 4.08, \"wt\": 1.935, \"qsec\": 18.9, \"vs\": 1, \"am\": 1, \"gear\": 4, \"carb\": 1}, {\"model\": \"Porsche 914-2\", \"mpg\": 26.0, \"cyl\": 4, \"disp\": 120.3, \"hp\": 91, \"drat\": 4.43, \"wt\": 2.14, \"qsec\": 16.7, \"vs\": 0, \"am\": 1, \"gear\": 5, \"carb\": 2}, {\"model\": \"Lotus Europa\", \"mpg\": 30.4, \"cyl\": 4, \"disp\": 95.1, \"hp\": 113, \"drat\": 3.77, \"wt\": 1.5130000000000001, \"qsec\": 16.9, \"vs\": 1, \"am\": 1, \"gear\": 5, \"carb\": 2}, {\"model\": \"Ford Pantera L\", \"mpg\": 15.8, \"cyl\": 8, \"disp\": 351.0, \"hp\": 264, \"drat\": 4.22, \"wt\": 3.17, \"qsec\": 14.5, \"vs\": 0, \"am\": 1, \"gear\": 5, \"carb\": 4}, {\"model\": \"Ferrari Dino\", \"mpg\": 19.7, \"cyl\": 6, \"disp\": 145.0, \"hp\": 175, \"drat\": 3.62, \"wt\": 2.77, \"qsec\": 15.5, \"vs\": 0, \"am\": 1, \"gear\": 5, \"carb\": 6}, {\"model\": \"Maserati Bora\", \"mpg\": 15.0, \"cyl\": 8, \"disp\": 301.0, \"hp\": 335, \"drat\": 3.54, \"wt\": 3.57, \"qsec\": 14.6, \"vs\": 0, \"am\": 1, \"gear\": 5, \"carb\": 8}, {\"model\": \"Volvo 142E\", \"mpg\": 21.4, \"cyl\": 4, \"disp\": 121.0, \"hp\": 109, \"drat\": 4.11, \"wt\": 2.78, \"qsec\": 18.6, \"vs\": 1, \"am\": 1, \"gear\": 4, \"carb\": 2}]}}, {\"mode\": \"vega-lite\"});\n",
"</script>"
]
},
"metadata": {
"tags": []
},
"execution_count": 15
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ZxQvRYzTAh47"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}