MarcosRodrigo commited on
Commit
e73b79a
1 Parent(s): 31eb828

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -1
app.py CHANGED
@@ -2,6 +2,8 @@ import streamlit as st
2
  import pandas as pd
3
  from datetime import datetime
4
  import os
 
 
5
  from huggingface_hub import HfApi, upload_file, list_repo_files, hf_hub_download
6
 
7
  # Configuration for Hugging Face Repository
@@ -105,7 +107,7 @@ if "history" not in st.session_state:
105
  st.session_state.current_selections = load_current_selections().to_dict(orient="records")
106
 
107
  # Sidebar for navigating through different views
108
- menu = st.sidebar.selectbox("Select View", ["Poll", "Current", "History"])
109
 
110
  # Function to reset the current selections after submission
111
  def reset_selections():
@@ -233,3 +235,40 @@ elif menu == "History":
233
  st.table(record["Summary"])
234
  else:
235
  st.write("No history records found.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  import pandas as pd
3
  from datetime import datetime
4
  import os
5
+ import matplotlib.pyplot as plt
6
+ import seaborn as sns
7
  from huggingface_hub import HfApi, upload_file, list_repo_files, hf_hub_download
8
 
9
  # Configuration for Hugging Face Repository
 
107
  st.session_state.current_selections = load_current_selections().to_dict(orient="records")
108
 
109
  # Sidebar for navigating through different views
110
+ menu = st.sidebar.selectbox("Select View", ["Poll", "Current", "History", "Graph"])
111
 
112
  # Function to reset the current selections after submission
113
  def reset_selections():
 
235
  st.table(record["Summary"])
236
  else:
237
  st.write("No history records found.")
238
+
239
+ # Graph view to display a line chart of item selections over time
240
+ elif menu == "Graph":
241
+ st.title("Breakfast Poll History - Graph View")
242
+
243
+ # Prepare data for plotting
244
+ if st.session_state.history:
245
+ history_data = []
246
+ for record in st.session_state.history:
247
+ date = record['Date']
248
+ for index, row in record['Summary'].iterrows():
249
+ for drink in row['Drinks'].split(', '):
250
+ history_data.append({'Date': date, 'Item': drink, 'Type': 'Drink'})
251
+ for food in row['Food'].split(', '):
252
+ history_data.append({'Date': date, 'Item': food, 'Type': 'Food'})
253
+
254
+ # Create a DataFrame from history data
255
+ history_df = pd.DataFrame(history_data)
256
+
257
+ # Count occurrences of each item per date
258
+ item_counts = history_df.groupby(['Date', 'Item']).size().reset_index(name='Count')
259
+
260
+ # Create a line plot for each item over time
261
+ plt.figure(figsize=(12, 6))
262
+ sns.lineplot(data=item_counts, x='Date', y='Count', hue='Item', marker='o')
263
+
264
+ # Customize the plot
265
+ plt.xticks(rotation=45)
266
+ plt.title('Item Selections Over Time')
267
+ plt.xlabel('Date')
268
+ plt.ylabel('Number of Selections')
269
+ plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.15), ncol=3)
270
+
271
+ # Display the plot
272
+ st.pyplot(plt.gcf())
273
+ else:
274
+ st.write("No historical data available to plot.")