sedeba19 commited on
Commit
1cc6f57
1 Parent(s): 34712a7

Add application file

Browse files
Files changed (3) hide show
  1. Dockerfile +11 -0
  2. app.py +47 -0
  3. requirements.txt +2 -0
Dockerfile ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10
2
+
3
+ WORKDIR /panel-app-demo
4
+
5
+ COPY ./requirements.txt /panel-app-demo/requirements.txt
6
+
7
+ RUN pip install --no-cache-dir --upgrade -r ./requirements.txt
8
+
9
+ COPY . .
10
+
11
+ CMD ["panel", "serve", "/panel-app-demo/app.py", "--address", "0.0.0.0", "--port", "5006", "--allow-websocket-origin", "sedeba19-panel-app-demo.hf.space"]
app.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import panel as pn
2
+ import hvplot.pandas
3
+
4
+ # Load Data
5
+ from bokeh.sampledata.autompg import autompg_clean as df
6
+
7
+ # Make DataFrame Pipeline Interactive
8
+ idf = df.interactive()
9
+
10
+ # Define Panel widgets
11
+ cylinders = pn.widgets.IntSlider(name='Cylinders', start=4, end=8, step=2)
12
+ mfr = pn.widgets.ToggleGroup(
13
+ name='MFR',
14
+ options=['ford', 'chevrolet', 'honda', 'toyota', 'audi'],
15
+ value=['ford', 'chevrolet', 'honda', 'toyota', 'audi'],
16
+ button_type='success')
17
+ yaxis = pn.widgets.RadioButtonGroup(
18
+ name='Y axis',
19
+ options=['hp', 'weight'],
20
+ button_type='success'
21
+ )
22
+
23
+ # Combine pipeline and widgets
24
+ ipipeline = (
25
+ idf[
26
+ (idf.cyl == cylinders) &
27
+ (idf.mfr.isin(mfr))
28
+ ]
29
+ .groupby(['origin', 'mpg'])[yaxis].mean()
30
+ .to_frame()
31
+ .reset_index()
32
+ .sort_values(by='mpg')
33
+ .reset_index(drop=True)
34
+ )
35
+
36
+ # Pipe to hvplot
37
+ ihvplot = ipipeline.hvplot(x='mpg', y=yaxis, by='origin', color=["#ff6f69", "#ffcc5c", "#88d8b0"], line_width=6, height=400)
38
+
39
+ # Layout using Template
40
+ template = pn.template.FastListTemplate(
41
+ title='Interactive DataFrame Dashboards with hvplot .interactive',
42
+ sidebar=[cylinders, 'Manufacturers', mfr, 'Y axis' , yaxis],
43
+ main=[ihvplot.panel()],
44
+ accent_base_color="#88d8b0",
45
+ header_background="#88d8b0",
46
+ )
47
+ template.servable()
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ panel
2
+ hvplot