mirror of
https://github.com/peter-tanner/starcore-explorer-bad.git
synced 2024-12-02 18:10:28 +08:00
232 lines
5.7 KiB
Plaintext
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
|
||
|
}
|