1
0
mirror of https://github.com/pyscript/pyscript.git synced 2022-05-01 19:47:48 +03:00

Cleaned up Panel examples

This commit is contained in:
Philipp Rudiger
2022-04-20 13:18:09 +02:00
parent 518471bcbc
commit 67115635db
2 changed files with 15 additions and 17 deletions

View File

@@ -76,27 +76,25 @@
<py-script> <py-script>
import asyncio import asyncio
from io import StringIO
from js import fetch
import panel as pn import panel as pn
import param import param
import pandas as pd import pandas as pd
from panel.io.pyodide import show from panel.io.pyodide import show
from pyodide.http import open_url
MAPBOX_KEY = "pk.eyJ1IjoicGFuZWxvcmciLCJhIjoiY2s1enA3ejhyMWhmZjNobjM1NXhtbWRrMyJ9.B_frQsAVepGIe-HiOJeqvQ" MAPBOX_KEY = "pk.eyJ1IjoicGFuZWxvcmciLCJhIjoiY2s1enA3ejhyMWhmZjNobjM1NXhtbWRrMyJ9.B_frQsAVepGIe-HiOJeqvQ"
class App(pn.viewable.Viewer): class App(pn.viewable.Viewer):
data = param.DataFrame(precedence=-1) data = param.DataFrame(precedence=-1)
view = param.DataFrame(precedence=-1) view = param.DataFrame(precedence=-1)
arc_view = param.DataFrame(precedence=-1) arc_view = param.DataFrame(precedence=-1)
radius = param.Integer(default=50, bounds=(20, 1000)) radius = param.Integer(default=50, bounds=(20, 1000))
elevation = param.Integer(default=10, bounds=(0, 50)) elevation = param.Integer(default=10, bounds=(0, 50))
hour = param.Integer(default=0, bounds=(0, 23)) hour = param.Integer(default=0, bounds=(0, 23))
@@ -109,8 +107,12 @@ class App(pn.viewable.Viewer):
self.deck_gl = None self.deck_gl = None
super().__init__(**params) super().__init__(**params)
self.deck_gl = pn.pane.DeckGL( self.deck_gl = pn.pane.DeckGL(
dict(self.spec), mapbox_api_key=MAPBOX_KEY, throttle={'click': 10}, dict(self.spec),
sizing_mode='stretch_both', margin=0) mapbox_api_key=MAPBOX_KEY,
throttle={'click': 10},
sizing_mode='stretch_both',
margin=0
)
self.deck_gl.param.watch(self._update_arc_view, 'click_state') self.deck_gl.param.watch(self._update_arc_view, 'click_state')
self._playing = False self._playing = False
self._cb = pn.state.add_periodic_callback( self._cb = pn.state.add_periodic_callback(
@@ -186,7 +188,7 @@ class App(pn.viewable.Viewer):
(df.pickup_y<=float(lat+tol)) (df.pickup_y<=float(lat+tol))
] ]
@param.depends('hour', watch=True) @param.depends('hour', watch=True, on_init=True)
def _update_hourly_view(self): def _update_hourly_view(self):
self.view = self.data[self.data.hour==self.hour] self.view = self.data[self.data.hour==self.hour]
@@ -210,10 +212,8 @@ class App(pn.viewable.Viewer):
def update_spec(self): def update_spec(self):
self.deck_gl.object = dict(self.spec) self.deck_gl.object = dict(self.spec)
url = 'https://s3.eu-west-1.amazonaws.com/assets.holoviews.org/data/nyc_taxi_wide.csv'
data = await fetch('https://s3.eu-west-1.amazonaws.com/assets.holoviews.org/data/nyc_taxi_wide.csv') df = pd.read_csv(open_url(url))
df = pd.read_csv(StringIO(await data.text()))
app = App(data=df) app = App(data=df)
controls = pn.Param(app.param, sizing_mode='stretch_width', show_name=False) controls = pn.Param(app.param, sizing_mode='stretch_width', show_name=False)

View File

@@ -81,20 +81,18 @@
<py-script> <py-script>
import asyncio import asyncio
from io import StringIO
from js import fetch
import altair as alt import altair as alt
import panel as pn import panel as pn
import pandas as pd import pandas as pd
from panel.io.pyodide import show from panel.io.pyodide import show
from sklearn.cluster import KMeans from sklearn.cluster import KMeans
from pyodide.http import open_url
pn.config.sizing_mode = 'stretch_width' pn.config.sizing_mode = 'stretch_width'
data = await fetch('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-07-28/penguins.csv') url = 'https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-07-28/penguins.csv'
penguins = pd.read_csv(StringIO(await data.text())).dropna() penguins = pd.read_csv(open_url(url)).dropna()
cols = list(penguins.columns)[2:6] cols = list(penguins.columns)[2:6]
x = pn.widgets.Select(name='x', options=cols, value='bill_depth_mm') x = pn.widgets.Select(name='x', options=cols, value='bill_depth_mm')