Skip to content

A professional Java-based data visualization tool for creating interactive charts from CSV and JSON data. Features bar, line, pie, and histogram visualizations with export capabilities.

Notifications You must be signed in to change notification settings

akhishinde2004/DataVisualizationSoftware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Visualization Software

Java Developer Week 3 Project

Project Overview

This is a comprehensive Data Visualization Software built in Java that allows users to:

  • Import data from CSV and JSON files
  • Process and clean data automatically
  • Create interactive visualizations (Bar Chart, Line Chart, Pie Chart, Histogram)
  • Customize chart appearance
  • Export charts as PNG images

Features Implemented

1. Data Input and Processing

  • ✅ CSV file reader with proper parsing
  • ✅ JSON file reader with object array support
  • ✅ Data cleaning and validation
  • ✅ Automatic data type detection
  • ✅ Missing data handling

2. Visualization Components

  • ✅ Bar Chart - Compare categories
  • ✅ Line Chart - Show trends
  • ✅ Pie Chart - Display proportions
  • ✅ Histogram - Data distribution
  • ✅ Interactive charts with zoom and pan
  • ✅ Customizable titles and labels

3. User Interface

  • ✅ Intuitive GUI with Swing
  • ✅ File chooser for easy data import
  • ✅ Chart type selector
  • ✅ Column selectors for flexible visualization
  • ✅ Title customization
  • ✅ Export functionality
  • ✅ Information panel with data statistics

Requirements

  • Java JDK 11 or higher
  • Maven (for building)

Project Structure

DataVisualizationSoftware/
├── src/main/java/com/datavis/
│   ├── Main.java                           # Application entry point
│   ├── model/
│   │   └── DataModel.java                  # Data storage model
│   ├── dataprocessing/
│   │   ├── DataReader.java                 # Interface for file readers
│   │   ├── CSVDataReader.java              # CSV file parser
│   │   ├── JSONDataReader.java             # JSON file parser
│   │   └── DataProcessor.java              # Data cleaning and validation
│   ├── visualization/
│   │   └── ChartFactory.java               # Chart generation
│   └── ui/
│       └── MainWindow.java                 # Main application window
├── data/
│   ├── sample_sales.csv                    # Sample CSV data
│   └── sample_weather.json                 # Sample JSON data
└── pom.xml                                 # Maven build configuration

How to Build and Run

Option 1: Using Maven (Recommended)

  1. Build the project:

    mvn clean package
  2. Run the application:

    java -jar target/DataVisualizationSoftware-1.0-jar-with-dependencies.jar

Option 2: Using IDE (IntelliJ IDEA / Eclipse)

  1. Open the project folder in your IDE
  2. Let Maven download dependencies automatically
  3. Run the Main.java file

Option 3: Manual Compilation

  1. Download JFreeChart library:

    • Download jfreechart-1.5.3.jar
    • Place it in the lib/ folder
  2. Compile:

    javac -cp "lib/*" -d bin src/main/java/com/datavis/**/*.java
  3. Run:

    java -cp "bin:lib/*" com.datavis.Main

How to Use the Application

  1. Launch the Application

    • Run the JAR file or Main.java
  2. Load Data

    • Click "Load Data File" button
    • Select a CSV or JSON file
    • Sample files are provided in the data/ folder
  3. Configure Visualization

    • Choose chart type from dropdown
    • Select category column (X-axis)
    • Select value column (Y-axis)
    • Enter a custom title (optional)
  4. Generate Chart

    • Click "Generate Chart" button
    • Chart will appear in the center panel
    • You can interact with the chart (zoom, pan)
  5. Export Chart

    • Click "Export as PNG" button
    • Choose save location
    • Chart will be saved as PNG image
  6. Clear and Start Over

    • Click "Clear" button to reset

Sample Data Files Included

sample_sales.csv

  • Product sales data with revenue information
  • Good for: Bar charts, Pie charts

sample_weather.json

  • Monthly weather data (temperature and rainfall)
  • Good for: Line charts, Histograms

Key Technologies Used

  • Java 11
  • Swing (GUI framework)
  • JFreeChart (Chart library)
  • Maven (Build tool)

Project Objectives Met

Data Input and Processing:

  • Multiple format support (CSV, JSON)
  • Data cleaning algorithms
  • Type detection and validation

Visualization Components:

  • 4 different chart types
  • Interactive and customizable
  • Professional appearance

User Interface:

  • Clean and intuitive design
  • Easy-to-use controls
  • Real-time feedback
  • Export functionality

Troubleshooting

Issue: "No main manifest attribute"

  • Solution: Use the jar-with-dependencies version

Issue: Charts not displaying

  • Solution: Ensure data has at least 2 columns and numeric values

Issue: File not loading

  • Solution: Check file format (must be valid CSV or JSON)

Future Enhancements (Optional)

  • Additional chart types (Scatter plot, Area chart)
  • Database connectivity
  • Real-time data updates
  • Multiple data series support
  • Advanced statistics
  • Theme customization

Credits

Developed as part of Java Developer Internship - Week 3 Project Data Visualization Software v1.0

License

This project is created for educational purposes as part of an internship assignment.

About

A professional Java-based data visualization tool for creating interactive charts from CSV and JSON data. Features bar, line, pie, and histogram visualizations with export capabilities.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published