Py.Cafe

maartenbreddels/

altair-editor-poc

Interactive Car Dataset Visualization with Altair, Vega, and ipydatagrid

DocsPricing
  • app.py
  • requirements.txt
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import altair as alt
from vega_datasets import data
import ipydatagrid
import pandas as pd
import ipywidgets as widgets

# our custom JupyterChart which includes a signals trait
from jupyter_chart import JupyterChart


cars = data.cars()

chart = alt.Chart(cars).mark_circle().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
)


chart_widget = JupyterChart(chart)

# hook up chart_widget.signals to a ipydatagrid table

def on_signals_change(signals_change):
    signals = signals_change["new"]
    print("received signals", signals)
    grid_signals.data = pd.DataFrame(signals)

grid_signals = ipydatagrid.DataGrid(pd.DataFrame({"name": [], "value": []}))
chart_widget.observe(on_signals_change, "signals")

# assign a widget to page so solara knows what to render
page = widgets.VBox([chart_widget, grid_signals])