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.
-
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
-
Upload Data: Load your dataset from various file formats
-
Analyze: The app automatically detects column types and provides statistics
-
Select Columns: Choose columns for visualization (X-axis and optional Y-axis)
-
Get Suggestions: Receive intelligent chart recommendations based on your selection
-
Generate & Export: Create charts instantly and save them in high quality
| Bar Chart | Scatter Plot | Heatmap |
|---|---|---|
![]() |
![]() |
![]() |
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
-
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
pip install -r requirements.txtRun the application:
python main.pyPython 3.6+
pandas numpy matplotlib seaborn pillow tkinter (usually included with Python)
This project is open source and available under the MIT License.


