Skip to content

Mordekai66/chart-suggester

Repository files navigation

Chart Suggester

Python GUI MIT License

Chart Suggester is a desktop application built with Python and Tkinter that simplifies the process of data visualization. By automatically analyzing your dataset's structure and content, it recommends the most suitable chart types and generates them with just a few clicks.

image

Features

  • Multi-format Data Support: Load data from CSV, Excel, JSON, text files, and SQLite databases

  • Smart Data Analysis: Automatic detection of column types (numeric, categorical, datetime, boolean, text)

  • Intelligent Chart Suggestions: Context-aware recommendations based on selected columns and data types

  • Wide Variety of Charts: Support for 30+ chart types including:

  • Basic charts: Bar, Line, Scatter, Pie

  • Statistical charts: Histogram, Box Plot, Violin Plot, Density Plot

  • Advanced charts: Heatmaps, Facet Grids, Pair Plots, Word Clouds

  • Time series charts: Area charts, Event timelines

  • Interactive UI: User-friendly interface with real-time chart generation

  • Export Capabilities: Save charts as PNG or PDF files

How It Works

  1. Upload Data: Load your dataset from various file formats

  2. Analyze: The app automatically detects column types and provides statistics

  3. Select Columns: Choose columns for visualization (X-axis and optional Y-axis)

  4. Get Suggestions: Receive intelligent chart recommendations based on your selection

  5. Generate & Export: Create charts instantly and save them in high quality

Untitled Diagram drawio

Project Screenshots

Main Interface

image

Chart Gallery

Bar Chart Scatter Plot Heatmap
bar chart scatter plot heatmap

Technical Architecture

The application is organized into modular components:

  • main.py: Application entry point

  • ui.py: User interface implementation using Tkinter

  • data_loader.py: Handles data loading from multiple file formats

  • chart_logic.py: Contains data analysis and chart suggestion algorithms

  • chart_plotter.py: Implements chart generation using Matplotlib and Seaborn

  • utils.py: Utility functions for data type detection and statistics

Supported Data Types

  • Numeric: Integer and floating-point numbers

  • Categorical: Limited unique values (categories)

  • Datetime: Date and time values

  • Boolean: True/False values

  • Text: Longer string content

  • Other: Unrecognized or mixed data types

Install required dependencies

pip install -r requirements.txt

Usage

Run the application:

python main.py

Requirements

Python 3.6+

pandas numpy matplotlib seaborn pillow tkinter (usually included with Python)

License

This project is open source and available under the MIT License.

About

An intelligent Python application that automatically analyzes datasets and suggests appropriate chart types for effective data visualization.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages