Skip to content

A comprehensive data visualization project demonstrating various charting techniques using Matplotlib, Seaborn, and Plotly. This project analyzes educational platform user behavior data through multiple visualization approaches, from basic line charts to interactive animations.

Notifications You must be signed in to change notification settings

dxseva/Student-Behavior-Analytics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Student-Behavior-Analytics

A comprehensive data visualization project demonstrating various charting techniques using Matplotlib, Seaborn, and Plotly. This project analyzes educational platform user behavior data through multiple visualization approaches, from basic line charts to interactive animations.


What This Project Does

This project processes student behavior data from an educational platform database to create meaningful visualizations. Each exercise builds on the previous one, exploring different aspects of the data through various chart types and styling approaches.



File Descriptions


00_line_chart.ipynb

    Basic line chart showing daily page views using Pandas plotting functionality


01_line_chart_styles.ipynb

    Dual-line chart comparing page views and commits with custom styling


02_bar_chart.ipynb

    Bar chart analyzing commit patterns across different times of day


03_bar_charts.ipynb

    Comparative bar charts showing weekday vs weekend commit patterns


04_histogram.ipynb

    Overlapping histograms comparing commit distributions using Matplotlib


05_boxplot.ipynb

    Box plot analysis of control vs test group behavior with custom styling


06_scatter_matrix.ipynb

    Scatter matrix visualization showing correlations between multiple variables


07_heatmap.ipynb

    Heatmap visualizations for temporal commit patterns across users


08_seaborn.ipynb

    Advanced styling with Seaborn for project commit dynamics


09_plotly.ipynb

    Interactive animated line race chart using Plotly



Interesting Techniques Used


Data Manipulation Techniques

SQL queries with SQLite3 for database operations and filtering non-admin users
Pandas DataFrame operations including grouping, aggregation, and time-based filtering
Time-based data categorization using datetime operations to classify commits by time periods
Multi-index operations for complex data grouping and analysis


Visualization Techniques

Custom color palettes and transparency effects using matplotlib alpha parameter
Figure sizing and font customization with matplotlib's rcParams configuration
Subplot positioning and layout management using matplotlib's figure and axes system
KDE (Kernel Density Estimation) plots for distribution visualization
Scatter matrix generation using pandas.plotting.scatter_matrix
Heatmap creation with custom colormaps and axis labeling
Animation frameworks using Plotly's graph_objects for interactive charts



Technologies and Libraries


Core Data Processing

Pandas - Advanced data manipulation and analysis
SQLite3 - Database connectivity and querying
NumPy - Numerical computing for data processing


Visualization Libraries

Matplotlib - Foundational plotting library with extensive customization options
Seaborn - Statistical data visualization with built-in themes and color palettes
Plotly - Interactive plotting library for web-based visualizations


Advanced Matplotlib Components

mpl_toolkits.axes_grid1 - Advanced subplot positioning and colorbar management
Custom transparency handling for overlapping visualizations



Project Structure

├── src/
│   ├── ex00/
│   ├── ex01/
│   ├── ex02/
│   ├── ex03/
│   ├── ex04/
│   ├── ex05/
│   ├── ex06/
│   ├── ex07/
│   ├── ex08/
│   └── ex09/
├── data/
└── misc/
    └── images/

src/: Contains all Jupyter notebooks organized by exercise number, each demonstrating different visualization techniques and data analysis approaches
data/: Stores the SQLite database and CSV files used for analysis. The main database contains pageviews and checker tables with student activity data
misc/images/: Reference images showing expected output for each visualization exercise



Key Features

The project demonstrates progression from basic static charts to advanced interactive visualizations. Each exercise explores different aspects of the same dataset, showing how visualization choice affects data interpretation. The final Plotly exercise creates an animated line race chart that dynamically shows commit progress over time.


The visualizations reveal patterns like peak usage hours, weekend vs weekday behavior differences, and user engagement metrics that would be difficult to spot in raw data tables.

About

A comprehensive data visualization project demonstrating various charting techniques using Matplotlib, Seaborn, and Plotly. This project analyzes educational platform user behavior data through multiple visualization approaches, from basic line charts to interactive animations.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published