import gradio as gr import pandas as pd import matplotlib.pyplot as plt # Function to visualize student progress def visualize_progress(file): df = pd.read_csv(file.name) # Reading the uploaded CSV file plt.figure(figsize=(10,6)) for student in df['student_name'].unique(): student_data = df[df['student_name'] == student] plt.plot(student_data['date'], student_data['score'], label=student) plt.xlabel('Date') plt.ylabel('Score') plt.title('Student Progress Over Time') plt.legend() plt.grid(True) plt.savefig('progress.png') # Save the plot to display it later return 'progress.png' # Gradio UI with gr.Blocks() as demo: gr.Markdown("# Student Progress Analysis Tool") # File input and display output file_input = gr.File(label="Upload Student Data (CSV)") output_image = gr.Image(label="Progress Chart") # Call the visualize_progress function file_input.change(visualize_progress, inputs=file_input, outputs=output_image) demo.launch()