Metadata-Version: 2.4
Name: blazingplot
Version: 0.1.0
Summary: A Fast and Fully Controlled Data Visualization Library
Author-email: BlazingPlot Team <info@blazingplot.com>
License: MIT
Project-URL: Homepage, https://github.com/username/blazingplot
Project-URL: Bug Tracker, https://github.com/username/blazingplot/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dash>=2.0.0
Requires-Dist: dash-bootstrap-components>=1.0.0
Requires-Dist: plotly>=5.0.0
Requires-Dist: polars>=0.15.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: matplotlib>=3.4.0
Requires-Dist: numpy>=1.20.0
Requires-Dist: jupyter-dash>=0.4.0
Requires-Dist: ipython>=7.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# BlazingPlot

[![Test](https://github.com/username/blazingplot/actions/workflows/test.yml/badge.svg)](https://github.com/username/blazingplot/actions/workflows/test.yml)
[![PyPI version](https://badge.fury.io/py/blazingplot.svg)](https://badge.fury.io/py/blazingplot)
[![Python Version](https://img.shields.io/pypi/pyversions/blazingplot.svg)](https://pypi.org/project/blazingplot/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A Fast and Fully Controlled Data Visualization Library built on top of Plotly, Dash, and Polars.

## Features

- Interactive dashboards in both Jupyter Notebooks and standalone web applications
- High-performance data transformations using Polars
- Customizable visualizations with full control over chart elements
- Export capabilities for charts (PNG, HTML) and data (CSV)
- Customizable color palettes
- Modular, object-oriented design for extensibility

## Installation

```bash
pip install blazingplot
```

## Quick Start

```python
import polars as pl
from blazingplot import Dashboard

# Create a sample DataFrame
data = pl.DataFrame({
    'x': [1, 2, 3, 4, 5],
    'y': [10, 20, 15, 25, 30],
    'category': ['A', 'B', 'A', 'B', 'A']
})

# Create a dashboard
dashboard = Dashboard(data, title="My Dashboard")

# Run the dashboard in a Jupyter notebook
dashboard.run(mode="jupyter")

# Or run as a standalone web application
# dashboard.run(mode="standalone", port=8050)
```

## Visualization Types

BlazingPlot supports the following visualization types:

- Scatter Plot
- Line Chart
- Bar Chart
- Bubble Chart
- Pie Chart
- Box Plot
- Histogram
- 2D Histogram
- Time Series
- Stock Chart
- Error Bars
- Map Visualizations (Bubble Map, Tile Choropleth, Line on Tiles)
- Tables (Simple Table, Pivot Table)

## Using Individual Visualizations

You can also use the visualization classes directly:

```python
from blazingplot.visualizations.base import ScatterPlot

# Create a scatter plot
scatter = ScatterPlot(data, x='x', y='y', color='category', title="My Scatter Plot")

# Plot the visualization
fig = scatter.plot()

# Export to HTML
scatter.export_html("scatter.html")

# Export to PNG
scatter.export_png("scatter.png")
```

## Dashboard Layout

The dashboard is divided into three main sections:

1. **Column Selector**: Select columns from your dataset
2. **Visualization Controls**: Configure your visualization
3. **Visualization Display**: View and interact with your visualization

## Performance

BlazingPlot is designed for performance, leveraging Polars for data transformations
and Plotly for rendering. It can handle large datasets efficiently.

## Customization

You can customize the appearance of your visualizations using color palettes:

```python
# Create a dashboard with a custom color palette
dashboard = Dashboard(data, title="My Dashboard", custom_palette="viridis")
```

## Development

### Setup

1. Clone the repository
```bash
git clone https://github.com/username/blazingplot.git
cd blazingplot
```

2. Install development dependencies
```bash
pip install -e ".[dev]"
```

### Testing

```bash
pytest
```

### Building

```bash
python -m build
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License - see the LICENSE file for details.
