Update app.py
Browse files
app.py
CHANGED
|
@@ -144,6 +144,8 @@ def main():
|
|
| 144 |
# Format "Date of Session" and "Timestamp"
|
| 145 |
df['Date of Session'] = pd.to_datetime(df['Date of Session']).dt.strftime('%m/%d/%Y')
|
| 146 |
df['Timestamp'] = pd.to_datetime(df['Timestamp']).dt.strftime('%I:%M %p')
|
|
|
|
|
|
|
| 147 |
df = df[['Date of Session', 'Timestamp'] + [col for col in df.columns if col not in ['Date of Session', 'Timestamp']]]
|
| 148 |
|
| 149 |
# Replace student names with initials
|
|
@@ -174,7 +176,7 @@ def main():
|
|
| 174 |
with col2:
|
| 175 |
intervention_frequency = intervention_stats['Intervention Frequency (%)'].values[0]
|
| 176 |
# Display the "Intervention Frequency (%)" text
|
| 177 |
-
st.markdown("<h2 style='color: #358E66;'>Intervention Frequency
|
| 178 |
# Display the frequency value below it
|
| 179 |
st.markdown(f"<h1 style='color: #358E66;'>{intervention_frequency}%</h1>", unsafe_allow_html=True)
|
| 180 |
|
|
@@ -343,13 +345,15 @@ def compute_student_metrics(df):
|
|
| 343 |
return student_metrics_df
|
| 344 |
|
| 345 |
def plot_student_metrics(student_metrics_df):
|
| 346 |
-
# Create a
|
| 347 |
fig, ax = plt.subplots()
|
| 348 |
|
| 349 |
-
# Plotting Attendance and Engagement
|
| 350 |
-
ax.
|
| 351 |
-
ax.
|
|
|
|
| 352 |
|
|
|
|
| 353 |
ax.set_xlabel('Student')
|
| 354 |
ax.set_ylabel('Percentage (%)')
|
| 355 |
ax.set_title('Student Attendance and Engagement Metrics')
|
|
|
|
| 144 |
# Format "Date of Session" and "Timestamp"
|
| 145 |
df['Date of Session'] = pd.to_datetime(df['Date of Session']).dt.strftime('%m/%d/%Y')
|
| 146 |
df['Timestamp'] = pd.to_datetime(df['Timestamp']).dt.strftime('%I:%M %p')
|
| 147 |
+
df['Session Start Time'] = pd.to_datetime(df['Session Start Time']).dt.strftime('%I:%M %p')
|
| 148 |
+
df['Session End Time'] = pd.to_datetime(df['Session End Time']).dt.strftime('%I:%M %p')
|
| 149 |
df = df[['Date of Session', 'Timestamp'] + [col for col in df.columns if col not in ['Date of Session', 'Timestamp']]]
|
| 150 |
|
| 151 |
# Replace student names with initials
|
|
|
|
| 176 |
with col2:
|
| 177 |
intervention_frequency = intervention_stats['Intervention Frequency (%)'].values[0]
|
| 178 |
# Display the "Intervention Frequency (%)" text
|
| 179 |
+
st.markdown("<h2 style='color: #358E66;'>Intervention Frequency</h2>", unsafe_allow_html=True)
|
| 180 |
# Display the frequency value below it
|
| 181 |
st.markdown(f"<h1 style='color: #358E66;'>{intervention_frequency}%</h1>", unsafe_allow_html=True)
|
| 182 |
|
|
|
|
| 345 |
return student_metrics_df
|
| 346 |
|
| 347 |
def plot_student_metrics(student_metrics_df):
|
| 348 |
+
# Create a stacked bar chart for attendance and engagement
|
| 349 |
fig, ax = plt.subplots()
|
| 350 |
|
| 351 |
+
# Plotting the Attendance and Engagement as stacked bars
|
| 352 |
+
ax.bar(student_metrics_df['Student'], student_metrics_df['Attendance (%)'], label='Attendance (%)', color='#005288')
|
| 353 |
+
ax.bar(student_metrics_df['Student'], student_metrics_df['Engagement (%)'],
|
| 354 |
+
bottom=student_metrics_df['Attendance (%)'], label='Engagement (%)', color='#3AB0FF')
|
| 355 |
|
| 356 |
+
# Setting the labels, title, and legend
|
| 357 |
ax.set_xlabel('Student')
|
| 358 |
ax.set_ylabel('Percentage (%)')
|
| 359 |
ax.set_title('Student Attendance and Engagement Metrics')
|