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

Merge pull request #33 from anaconda/simplify_panel

Cleaned up Panel examples
This commit is contained in:
Fabio Pliger
2022-04-20 20:42:03 -05:00
committed by GitHub
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')