Update app.py
Browse files
app.py
CHANGED
|
@@ -211,7 +211,7 @@ def main():
|
|
| 211 |
with col2:
|
| 212 |
intervention_frequency = intervention_stats['Intervention Frequency (%)'].values[0]
|
| 213 |
# Display the "Intervention Frequency (%)" text
|
| 214 |
-
st.markdown("<h3 style='color: #358E66;'>Intervention Frequency</
|
| 215 |
# Display the frequency value below it
|
| 216 |
st.markdown(f"<h1 style='color: #358E66;'>{intervention_frequency}%</h1>", unsafe_allow_html=True)
|
| 217 |
|
|
@@ -226,6 +226,28 @@ def main():
|
|
| 226 |
# Visualization for Student Metrics
|
| 227 |
student_metrics_fig = plot_student_metrics(student_metrics_df)
|
| 228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 229 |
# Add download button for Student Metrics chart
|
| 230 |
download_chart(student_metrics_fig, "student_metrics_chart.png")
|
| 231 |
|
|
@@ -407,6 +429,19 @@ def compute_student_metrics(df):
|
|
| 407 |
student_metrics_df.rename(columns={'index': 'Student'}, inplace=True)
|
| 408 |
return student_metrics_df
|
| 409 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 410 |
def plot_student_metrics(student_metrics_df):
|
| 411 |
# Create the figure and axis
|
| 412 |
fig, ax = plt.subplots(figsize=(10, 6)) # Increased figure size for better readability
|
|
|
|
| 211 |
with col2:
|
| 212 |
intervention_frequency = intervention_stats['Intervention Frequency (%)'].values[0]
|
| 213 |
# Display the "Intervention Frequency (%)" text
|
| 214 |
+
st.markdown("<h3 style='color: #358E66;'>Intervention Frequency</h3>", unsafe_allow_html=True)
|
| 215 |
# Display the frequency value below it
|
| 216 |
st.markdown(f"<h1 style='color: #358E66;'>{intervention_frequency}%</h1>", unsafe_allow_html=True)
|
| 217 |
|
|
|
|
| 226 |
# Visualization for Student Metrics
|
| 227 |
student_metrics_fig = plot_student_metrics(student_metrics_df)
|
| 228 |
|
| 229 |
+
# NEW Expanded version of Visualization for Student Metrics
|
| 230 |
+
# Two-column layout for the visualization and intervention frequency
|
| 231 |
+
col1, col2 = st.columns([3, 1]) # Set the column width ratio
|
| 232 |
+
|
| 233 |
+
with col1:
|
| 234 |
+
student_metrics_fig = plot_student_metrics(student_metrics_df)
|
| 235 |
+
|
| 236 |
+
with col2:
|
| 237 |
+
# Display the "Attendance Average (%)" text and value
|
| 238 |
+
st.markdown("<h4 style='color: #358E66;'>Attendance Average (%)</h4>", unsafe_allow_html=True)
|
| 239 |
+
if attendance_avg_stats is not None:
|
| 240 |
+
st.markdown(f"<h2 style='color: #358E66;'>{attendance_avg_stats}%</h2>", unsafe_allow_html=True)
|
| 241 |
+
else:
|
| 242 |
+
st.markdown("<h2 style='color: #358E66;'>N/A</h2>", unsafe_allow_html=True)
|
| 243 |
+
|
| 244 |
+
# Display the "Engagement Average (%)" text and value
|
| 245 |
+
st.markdown("<h4 style='color: #358E66;'>Engagement Average (%)</h4>", unsafe_allow_html=True)
|
| 246 |
+
if engagement_avg_stats is not None:
|
| 247 |
+
st.markdown(f"<h2 style='color: #358E66;'>{engagement_avg_stats}%</h2>", unsafe_allow_html=True)
|
| 248 |
+
else:
|
| 249 |
+
st.markdown("<h2 style='color: #358E66;'>N/A</h2>", unsafe_allow_html=True)
|
| 250 |
+
|
| 251 |
# Add download button for Student Metrics chart
|
| 252 |
download_chart(student_metrics_fig, "student_metrics_chart.png")
|
| 253 |
|
|
|
|
| 429 |
student_metrics_df.rename(columns={'index': 'Student'}, inplace=True)
|
| 430 |
return student_metrics_df
|
| 431 |
|
| 432 |
+
#NEW
|
| 433 |
+
def compute_average_metrics(student_metrics_df):
|
| 434 |
+
# Calculate the attendance and engagement average percentages across students
|
| 435 |
+
attendance_avg_stats = student_metrics_df['Attendance (%)'].mean() # Calculate the average attendance percentage
|
| 436 |
+
engagement_avg_stats = student_metrics_df['Engagement (%)'].mean() # Calculate the average engagement percentage
|
| 437 |
+
|
| 438 |
+
# Round the averages to make them whole numbers
|
| 439 |
+
attendance_avg_stats = round(attendance_avg_stats)
|
| 440 |
+
engagement_avg_stats = round(engagement_avg_stats)
|
| 441 |
+
|
| 442 |
+
return attendance_avg_stats, engagement_avg_stats
|
| 443 |
+
|
| 444 |
+
|
| 445 |
def plot_student_metrics(student_metrics_df):
|
| 446 |
# Create the figure and axis
|
| 447 |
fig, ax = plt.subplots(figsize=(10, 6)) # Increased figure size for better readability
|