๐ฏ Upload any CSV, get professional visualizations in seconds with AI-powered insights! ๐
๐ Transform your CSV data into professional, interactive dashboards with intelligent chart selection, AI-powered insights, and beautiful themes - all in seconds, with zero configuration required!
| Feature | Description | Power Level |
|---|---|---|
| ๐ค AI Chat Assistant | Ask natural language questions about your data and get precise answers | โญโญโญโญโญ |
| ๐จ Smart Chart Builder | Select columns โ Get AI suggestions โ Create beautiful charts instantly | โญโญโญโญโญ |
| ๐ 10+ Chart Types | From basic bars to advanced correlations and bubble charts | โญโญโญโญ |
| ๐ฏ Interactive Dashboards | Real-time filters, professional themes, responsive design | โญโญโญโญโญ |
| ๐ง AI-Powered Insights | Automated analysis, trend detection, business intelligence | โญโญโญโญโญ |
| ๐ค Export Everything | PNG, PDF, Excel, CSV - professional reports and visuals | โญโญโญโญ |
| ๐จ 6 Beautiful Themes | Professional styling for every presentation need | โญโญโญโญ |
| ๐ฑ Mobile Friendly | Works perfectly on desktop, tablet, and mobile | โญโญโญโญ |
๐ฌ You: "What's the highest expense and when did it occur?"
๐ค AI: "The highest expense was $215,000 which occurred on 2024-01-25"
๐ฌ You: "Show me sales trends by region"
๐ค AI: "North America leads with $67,440 total revenue, showing 15.2% growth"
- โ Select Columns - Choose data with intuitive checkboxes
- ๐ Get AI Suggestions - Intelligent chart recommendations
- ๐จ Pick Your Favorites - Multiple chart types available
- ๐ Show Charts - Beautiful visualizations in seconds!
- ๐จ Plotly - Clean and modern
- โช Plotly White - Minimalist elegance
- ๐ Plotly Dark - Sleek dark mode
- ๐ GGPlot2 - Statistical styling
- ๐ Seaborn - Data science favorite
- ๐ค Simple White - Pure simplicity
| Data Type | Examples | Visualization Options |
|---|---|---|
| Sales Data | Revenue, products, regions, time | Time series, geographic maps, category comparisons |
| Customer Data | Demographics, behavior, satisfaction | Distribution analysis, segmentation charts |
| Marketing Data | Campaigns, conversions, ROI | Performance tracking, correlation analysis |
| Operations Data | Productivity, costs, efficiency | KPI dashboards, trend analysis |
| Survey Data | Responses, ratings, demographics | Distribution plots, satisfaction analysis |
| Financial Data | Expenses, budgets, forecasts | Time series, budget vs actual |
| HR Data | Headcount, turnover, performance | Workforce analytics, performance tracking |
| Web Analytics | Traffic, conversions, sources | Funnel analysis, source attribution |
# The AI decides what charts to create:
Time Series Data โ Line charts, area charts, trend analysis
Categorical Data โ Bar charts, pie charts, donut charts
Geographic Data โ Maps, heatmaps, choropleth
Correlation Data โ Scatter plots, correlation matrices
Distribution Data โ Histograms, box plots, violin plots
Comparison Data โ Bar charts, radar charts, parallel coordinates
Part-to-Whole โ Pie charts, treemaps, stacked bars
Ranking Data โ Horizontal bars, lollipop charts- Python 3.8 or higher
- pip package manager
-
Clone the Repository
git clone https://github.com/yourusername/ChartCraft-AI.git cd ChartCraft-AI -
Create Virtual Environment
python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
Install Dependencies
pip install -r requirements.txt
-
Run the Application
streamlit run app.py
-
Open in Browser
- The app will automatically open at
http://localhost:8501 - If not, navigate to the URL shown in the terminal
- The app will automatically open at
# Create conda environment
conda create -n chartcraft python=3.8
conda activate chartcraft
# Install dependencies
pip install -r requirements.txt
# Run application
streamlit run app.py- Drag and drop your CSV file into the upload area
- Or click "Browse files" to select your CSV
- The app automatically detects column types and data patterns
- View automatically generated visualizations in the "Dashboard" tab
- Charts are intelligently selected based on your data characteristics
- Key metrics are displayed at the top of the dashboard
- Use the sidebar filters to focus on specific data subsets
- Numeric filters: Range sliders for continuous variables
- Categorical filters: Multi-select dropdowns for categories
- Charts update automatically when filters are applied
- Choose different themes from the sidebar
- Override automatic chart selection with manual choices
- Use the "Generate Smart Charts" button to refresh visualizations
- Visit the "Insights" tab for AI-powered data analysis
- Get automated observations about data quality, patterns, and recommendations
- Understand your data story through natural language explanations
- Charts: Export as PNG ZIP or comprehensive PDF reports
- Data: Download filtered data as CSV or Excel with multiple sheets
- Reports: Generate professional reports with charts and insights
ChartCraftAI/
โโโ app.py # Main Streamlit application
โโโ data_analyzer.py # Intelligent data analysis engine
โโโ chart_selector.py # Smart chart selection algorithm
โโโ insights_generator.py # AI-powered insights generation
โโโ export_handler.py # Multi-format export functionality
โโโ requirements.txt # Python dependencies
- DataAnalyzer: Intelligent data type detection, pattern recognition, quality assessment
- ChartSelector: Algorithm for optimal chart selection based on data characteristics
- InsightsGenerator: AI-powered analysis for business intelligence and recommendations
- ExportHandler: Multi-format export capabilities (PNG, PDF, Excel, CSV)
# In chart_selector.py, add your custom chart method
def _create_custom_chart(self, theme: str) -> List[Dict[str, Any]]:
# Your custom visualization logic
pass
# Register in generate_smart_charts method
charts.extend(self._create_custom_chart(theme))# Add new themes to the theme selector in app.py
available_themes = [
"plotly", "plotly_white", "plotly_dark",
"ggplot2", "seaborn", "simple_white",
"your_custom_theme" # Add here
]# In insights_generator.py, add new insight methods
def _generate_custom_insights(self):
insights = []
# Your custom insight logic
self.insights.append({
'category': '๐ฅ Custom Analysis',
'points': insights
})date,revenue,product,region,sales_rep
2024-01-01,15000,Product A,North,John
2024-01-02,12000,Product B,South,Jane
Auto-Generated Charts: Time series revenue, product comparison, regional analysis
age,satisfaction,category,purchase_intent,location
25,4,Premium,Yes,Urban
34,3,Standard,No,Suburban
Auto-Generated Charts: Satisfaction distribution, age demographics, intent analysis
campaign,impressions,clicks,conversions,cost,channel
Campaign A,10000,500,50,1000,Google
Campaign B,8000,400,60,800,Facebook
Auto-Generated Charts: ROI analysis, channel comparison, funnel visualization
1. Installation Problems
# If you get permission errors
pip install --user -r requirements.txt
# If specific packages fail
pip install streamlit plotly pandas numpy matplotlib seaborn2. Memory Issues with Large Files
- Files >100MB may cause performance issues
- Consider sampling your data for exploration
- Use filters to reduce data size for analysis
3. Chart Generation Failures
- Check for special characters in column names
- Ensure data types are consistent
- Remove completely empty columns
4. Export Issues
# Install additional dependencies for PDF export
pip install reportlab python-pptx kaleido
# For geographic visualizations
pip install folium geopandas- Large Datasets: Use sampling or filtering for datasets >50,000 rows
- Many Columns: Focus analysis on most relevant columns
- Memory Usage: Close browser tabs and restart Streamlit if memory issues occur
This project is licensed under the MIT License - see the LICENSE file for details.