|
76 | 76 | <py-script>
|
77 | 77 | import asyncio
|
78 | 78 |
|
79 |
| -from io import StringIO |
80 |
| -from js import fetch |
81 |
| - |
82 | 79 | import panel as pn
|
83 | 80 | import param
|
84 | 81 | import pandas as pd
|
85 | 82 |
|
86 | 83 | from panel.io.pyodide import show
|
| 84 | +from pyodide.http import open_url |
87 | 85 |
|
88 | 86 | MAPBOX_KEY = "pk.eyJ1IjoicGFuZWxvcmciLCJhIjoiY2s1enA3ejhyMWhmZjNobjM1NXhtbWRrMyJ9.B_frQsAVepGIe-HiOJeqvQ"
|
89 | 87 |
|
90 | 88 | class App(pn.viewable.Viewer):
|
91 | 89 |
|
92 | 90 | data = param.DataFrame(precedence=-1)
|
93 |
| - |
| 91 | + |
94 | 92 | view = param.DataFrame(precedence=-1)
|
95 | 93 |
|
96 | 94 | arc_view = param.DataFrame(precedence=-1)
|
97 | 95 |
|
98 | 96 | radius = param.Integer(default=50, bounds=(20, 1000))
|
99 |
| - |
| 97 | + |
100 | 98 | elevation = param.Integer(default=10, bounds=(0, 50))
|
101 | 99 |
|
102 | 100 | hour = param.Integer(default=0, bounds=(0, 23))
|
|
109 | 107 | self.deck_gl = None
|
110 | 108 | super().__init__(**params)
|
111 | 109 | self.deck_gl = pn.pane.DeckGL(
|
112 |
| - dict(self.spec), mapbox_api_key=MAPBOX_KEY, throttle={'click': 10}, |
113 |
| - sizing_mode='stretch_both', margin=0) |
| 110 | + dict(self.spec), |
| 111 | + mapbox_api_key=MAPBOX_KEY, |
| 112 | + throttle={'click': 10}, |
| 113 | + sizing_mode='stretch_both', |
| 114 | + margin=0 |
| 115 | + ) |
114 | 116 | self.deck_gl.param.watch(self._update_arc_view, 'click_state')
|
115 | 117 | self._playing = False
|
116 | 118 | self._cb = pn.state.add_periodic_callback(
|
|
186 | 188 | (df.pickup_y<=float(lat+tol))
|
187 | 189 | ]
|
188 | 190 |
|
189 |
| - @param.depends('hour', watch=True) |
| 191 | + @param.depends('hour', watch=True, on_init=True) |
190 | 192 | def _update_hourly_view(self):
|
191 | 193 | self.view = self.data[self.data.hour==self.hour]
|
192 | 194 |
|
|
210 | 212 | def update_spec(self):
|
211 | 213 | self.deck_gl.object = dict(self.spec)
|
212 | 214 |
|
213 |
| - |
214 |
| -data = await fetch('https://s3.eu-west-1.amazonaws.com/assets.holoviews.org/data/nyc_taxi_wide.csv') |
215 |
| -df = pd.read_csv(StringIO(await data.text())) |
216 |
| - |
| 215 | +url = 'https://s3.eu-west-1.amazonaws.com/assets.holoviews.org/data/nyc_taxi_wide.csv' |
| 216 | +df = pd.read_csv(open_url(url)) |
217 | 217 | app = App(data=df)
|
218 | 218 | controls = pn.Param(app.param, sizing_mode='stretch_width', show_name=False)
|
219 | 219 |
|
|
0 commit comments