Skip to content

πŸ“Š Interactive Treemap Visualization – A Python tool that dynamically visualizes hierarchical data structures, such as file system directories, using recursive algorithms and Pygame.

Notifications You must be signed in to change notification settings

Zain-Ghias/Tree-Based-Data-Visualization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Tree-Based Data Visualization 🌳

Overview

This project is an interactive treemap visualization tool that represents hierarchical data structures using recursive tree-based algorithms. It was developed as part of CSC148 at the University of Toronto.

This program is designed to visualize hierarchical data, specifically focusing on file system structures by mapping folders and files into a treemap format.

🚨 The full source code is private due to university policies and academic integrity concerns. If you're an employer or an interested party, please contact me directly for access.

Skills & Technologies Used

βœ… Python & Object-Oriented Programming – Implemented classes using inheritance and abstraction.
βœ… Recursive Algorithms – Used recursion to traverse and process hierarchical data structures.
βœ… Data Processing – Used os library to read and process file system data.
βœ… Visualization with Pygame – Implemented an interactive GUI to display treemaps dynamically.
βœ… Event Handling & User Interaction – Enabled users to expand/collapse nodes, resize, move, and delete elements in real-time.
βœ… Algorithm Design – Developed treemap partitioning algorithms to generate proportional rectangular visualizations.

Project Features

πŸ“‚ File System Visualization

  • Models files and directories as a tree structure.
  • Uses file sizes to proportionally divide rectangles in the visualization.
  • Enables interactive expansion and collapsing of directories.

🎨 Interactive Treemap Display

  • Dynamic UI that updates based on user input.
  • Supports clicking on elements to display information.
  • Expanding & collapsing nodes for flexible navigation.
  • Modifying & resizing elements using keyboard commands.

Screenshots & Demo

Below are some visuals demonstrating the system in action:

1️⃣ Example Directory Expansion & Collapse

This GIF shows the user expanding and collapsing nodes in an example directory, representing a file system structure. Example Directory

2️⃣ Treemap Visualization in Action

This GIF demonstrates how the treemap dynamically updates as nodes are expanded and collapsed, showing how data is visually represented. Treemap Visualization

Instructions for Use

When a folder/file is selected, the following keys can be pressed:

  • E β†’ Expand the folder
  • A β†’ Expand the folder and all folders inside
  • C β†’ Collapse the parent folder
  • X β†’ Collapse the entire display
  • Q β†’ Visualize the selected folder/file
  • B β†’ Go back to parent folder (if Q was pressed)
  • Up/Down Arrow Keys β†’ Change the size of a file (in visualization)
  • M β†’ Move a file (while selecting a file and hovering over a folder)
  • Del β†’ Delete a file or folder from the visualization
  • Drag window β†’ Resize the visualization window

Why is the Code Private?

  • πŸ”’ This project was developed as part of CSC148 at UofT.
  • 🚫 Keeping the code private prevents academic integrity violations.
  • 🀝 If you're interested in the source code, reach out to me directly.

Contact

πŸ“© Reach out via GitHub or LinkedIn!

About

πŸ“Š Interactive Treemap Visualization – A Python tool that dynamically visualizes hierarchical data structures, such as file system directories, using recursive algorithms and Pygame.

Topics

Resources

Stars

Watchers

Forks

Languages