jchoo commited on
Commit
6c256fa
·
verified ·
1 Parent(s): ec09d55

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -8
app.py CHANGED
@@ -5,11 +5,11 @@ import vega_datasets
5
 
6
  import pandas as pd
7
  import altair as alt
8
- import numpy as np
9
- import pprint
10
  import datetime as dt
11
  from vega_datasets import data
12
- import matplotlib.pyplot as plt
13
 
14
 
15
  df2=pd.read_csv("https://raw.githubusercontent.com/dallascard/SI649_public/main/altair_hw3/approval_topline.csv")
@@ -17,7 +17,6 @@ df2=pd.read_csv("https://raw.githubusercontent.com/dallascard/SI649_public/main/
17
  df2['timestamp']=pd.to_datetime(df2['timestamp'])
18
  df2=pd.melt(df2, id_vars=['president', 'subgroup', 'timestamp'], value_vars=['approve','disapprove']).rename(columns={'variable':'choice', 'value':'rate'})
19
 
20
- df2_approve = df2[df2['choice'] == 'approve']
21
 
22
  # Enable Panel extensions
23
  # pn.extension()
@@ -33,9 +32,10 @@ template = pn.template.BootstrapTemplate(
33
  def create_plot(subgroup, date_range, moving_av_window):
34
 
35
  # Apply any required transformations to the data in pandas)
 
36
  filtered_df = df2_approve[df2_approve['subgroup'] == subgroup]
37
  filtered_df = filtered_df[(filtered_df['timestamp'].dt.date >= date_range[0]) & (filtered_df['timestamp'].dt.date <= date_range[1])]
38
- filtered_df['mov_avg'] = filtered_df['rate'].rolling(window=moving_av_window).mean().shift(moving_av_window//2)
39
 
40
  # Line chart
41
  line_chart = alt.Chart(filtered_df).mark_line(color='red', size=2).encode(
@@ -53,7 +53,7 @@ def create_plot(subgroup, date_range, moving_av_window):
53
  plot = scatter_plot + line_chart
54
 
55
  # Return the combined chart
56
- return plot
57
 
58
 
59
  # # Create the selection widget
@@ -63,8 +63,8 @@ select = pn.widgets.Select(name='Select', options=['All polls', 'Adults', 'Voter
63
  # # Create the slider for the date range
64
  date_range_slider = pn.widgets.DateRangeSlider(
65
  name='Date Range Slider',
66
- start=df2_approve['timestamp'].dt.date.min(), end=df2_approve['timestamp'].dt.date.max(),
67
- value=(df2_approve['timestamp'].dt.date.min(), df2_approve['timestamp'].dt.date.max()),
68
  step=1
69
  )
70
 
 
5
 
6
  import pandas as pd
7
  import altair as alt
8
+ # import numpy as np
9
+ # import pprint
10
  import datetime as dt
11
  from vega_datasets import data
12
+ # import matplotlib.pyplot as plt
13
 
14
 
15
  df2=pd.read_csv("https://raw.githubusercontent.com/dallascard/SI649_public/main/altair_hw3/approval_topline.csv")
 
17
  df2['timestamp']=pd.to_datetime(df2['timestamp'])
18
  df2=pd.melt(df2, id_vars=['president', 'subgroup', 'timestamp'], value_vars=['approve','disapprove']).rename(columns={'variable':'choice', 'value':'rate'})
19
 
 
20
 
21
  # Enable Panel extensions
22
  # pn.extension()
 
32
  def create_plot(subgroup, date_range, moving_av_window):
33
 
34
  # Apply any required transformations to the data in pandas)
35
+ df2_approve = df2[df2['choice'] == 'approve']
36
  filtered_df = df2_approve[df2_approve['subgroup'] == subgroup]
37
  filtered_df = filtered_df[(filtered_df['timestamp'].dt.date >= date_range[0]) & (filtered_df['timestamp'].dt.date <= date_range[1])]
38
+ filtered_df['mov_avg'] = filtered_df['rate'].rolling(window=moving_av_window).mean().shift(-moving_av_window//2)
39
 
40
  # Line chart
41
  line_chart = alt.Chart(filtered_df).mark_line(color='red', size=2).encode(
 
53
  plot = scatter_plot + line_chart
54
 
55
  # Return the combined chart
56
+ return pn.pane.Vega(plot)
57
 
58
 
59
  # # Create the selection widget
 
63
  # # Create the slider for the date range
64
  date_range_slider = pn.widgets.DateRangeSlider(
65
  name='Date Range Slider',
66
+ start=df2['timestamp'].dt.date.min(), end=df2['timestamp'].dt.date.max(),
67
+ value=(df2['timestamp'].dt.date.min(), df2['timestamp'].dt.date.max()),
68
  step=1
69
  )
70