starcore-explorer-bad/content/pyodide/altair.ipynb
2023-06-24 01:19:43 +08:00

232 lines
5.7 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Altair in `JupyterLite`\n",
"\n",
"**Altair** is a declarative statistical visualization library for Python.\n",
"\n",
"Most of the examples below are from: https://altair-viz.github.io/gallery"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import the dependencies:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"%pip install -q altair"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Simple Bar Chart"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import altair as alt\n",
"import pandas as pd\n",
"\n",
"source = pd.DataFrame({\n",
" 'a': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],\n",
" 'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]\n",
"})\n",
"\n",
"alt.Chart(source).mark_bar().encode(\n",
" x='a',\n",
" y='b'\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Simple Heatmap"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import altair as alt\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"# Compute x^2 + y^2 across a 2D grid\n",
"x, y = np.meshgrid(range(-5, 5), range(-5, 5))\n",
"z = x ** 2 + y ** 2\n",
"\n",
"# Convert this grid to columnar data expected by Altair\n",
"source = pd.DataFrame({'x': x.ravel(),\n",
" 'y': y.ravel(),\n",
" 'z': z.ravel()})\n",
"\n",
"alt.Chart(source).mark_rect().encode(\n",
" x='x:O',\n",
" y='y:O',\n",
" color='z:Q'\n",
")\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Install the Vega Dataset"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"%pip install -q vega_datasets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Interactive Average"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import altair as alt\n",
"from vega_datasets import data\n",
"\n",
"source = data.seattle_weather()\n",
"brush = alt.selection(type='interval', encodings=['x'])\n",
"\n",
"bars = alt.Chart().mark_bar().encode(\n",
" x='month(date):O',\n",
" y='mean(precipitation):Q',\n",
" opacity=alt.condition(brush, alt.OpacityValue(1), alt.OpacityValue(0.7)),\n",
").add_selection(\n",
" brush\n",
")\n",
"\n",
"line = alt.Chart().mark_rule(color='firebrick').encode(\n",
" y='mean(precipitation):Q',\n",
" size=alt.SizeValue(3)\n",
").transform_filter(\n",
" brush\n",
")\n",
"\n",
"alt.layer(bars, line, data=source)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Locations of US Airports"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": [
"import altair as alt\n",
"from vega_datasets import data\n",
"\n",
"airports = data.airports.url\n",
"states = alt.topo_feature(data.us_10m.url, feature='states')\n",
"\n",
"# US states background\n",
"background = alt.Chart(states).mark_geoshape(\n",
" fill='lightgray',\n",
" stroke='white'\n",
").properties(\n",
" width=500,\n",
" height=300\n",
").project('albersUsa')\n",
"\n",
"# airport positions on background\n",
"points = alt.Chart(airports).transform_aggregate(\n",
" latitude='mean(latitude)',\n",
" longitude='mean(longitude)',\n",
" count='count()',\n",
" groupby=['state']\n",
").mark_circle().encode(\n",
" longitude='longitude:Q',\n",
" latitude='latitude:Q',\n",
" size=alt.Size('count:Q', title='Number of Airports'),\n",
" color=alt.value('steelblue'),\n",
" tooltip=['state:N','count:Q']\n",
").properties(\n",
" title='Number of airports in US'\n",
")\n",
"\n",
"background + points\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python (Pyodide)",
"language": "python",
"name": "python"
},
"language_info": {
"codemirror_mode": {
"name": "python",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}