AI-powered scientific plotting tool inspired by gnuplot
Project description
GPTPlot
AI-powered scientific plotting tool inspired by gnuplot
GPTPlot combines the simplicity of gnuplot's CLI with the power of Python's scientific stack (matplotlib, pandas, seaborn). Create publication-quality plots from the command line or interactive shell.
✨ Features
- 🚀 Fast CLI plotting - Generate plots without writing code
- 📊 Multiple plot types - Line, scatter, heatmap, quiver, surface, and more
- 🎨 Beautiful themes - Journal, presentation, and dark modes
- 📁 Smart data loading - Auto-detects CSV, DAT, TXT formats
- ⚙️ YAML configs - Reproducible plots via configuration files
- 🔢 Interactive mode - Explore data with an interactive shell
- 📈 Data analysis - Built-in correlation, fitting, and statistics
- 🤖 AI-Ready - Designed for future LLM integration
🔧 Installation
pip install gptplot
Requires Python 3.9+
🚀 Quick Start
Basic plotting
# Simple line plot
gptplot data.csv --x time --y voltage
# Auto-detect columns and plot type
gptplot data.csv
# Create scatter plot with custom styling
gptplot data.csv --type scatter --theme journal -o figure1
Multiple plot types
# Heatmap
gptplot grid.dat --x 1 --y 2 --z 3 --type heatmap --cmap viridis
# Histogram
gptplot data.csv --y values --type hist --bins 50
# Box plot
gptplot data.csv --x category --y measurement --type box
Configuration files
# Create plot_config.yaml
cat > plot_config.yaml << EOF
type: scatter
x: time
y: voltage
xlabel: Time (s)
ylabel: Voltage (V)
theme: journal
dpi: 300
EOF
# Use config
gptplot data.csv --config plot_config.yaml
Interactive mode
gptplot data.csv --interactive
# In the shell:
> plot x=time y=voltage type=line
> set theme dark
> save my_plot
> quit
📊 Examples
Data Science Workflow
# Correlation heatmap
gptplot data.csv --corr
# Statistical summary
gptplot data.csv --summary
# Polynomial fitting
gptplot data.csv --x time --y signal --fit poly2
Scientific Plotting
# Vector field (quiver plot)
gptplot spins.dat --no-header \
--x 1 --y 2 --u 4 --v 5 --z 6 \
--type quiver --cmap coolwarm
# 3D surface
gptplot grid.dat --x 1 --y 2 --z 3 \
--type surface --cmap viridis
🎨 Themes
Built-in professional themes:
--theme journal # Clean, publication-ready
--theme presentation # Large fonts, high contrast
--theme dark # Dark background
--theme notebook # Jupyter-style
📁 Supported Formats
- Input: CSV, DAT, TXT (auto-detected delimiters)
- Output: PNG, PDF, SVG
- Config: YAML, JSON
🛠️ Advanced Features
Custom output directory
gptplot data.csv -o myplot --output-dir figures/
File naming schemes
# Overwrite (default)
gptplot data.csv -o plot
# Timestamp (experiment tracking)
gptplot data.csv --save-naming timestamp -o experiment
# Numbered (multiple runs)
gptplot data.csv --save-naming numbered -o run
Column specification
# By name
gptplot data.csv --x time --y voltage
# By 1-based index
gptplot data.dat --no-header --x 1 --y 2
🤖 Future: AI Integration
GPTPlot is designed with future LLM integration in mind:
# Coming soon!
gptplot --llm "plot voltage vs time with a dark theme"
📖 Documentation
Full documentation available at: GitHub Repository
🤝 Contributing
Contributions welcome! Please feel free to submit a Pull Request.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgements
Inspired by gnuplot's simplicity and powered by Python's scientific stack:
- matplotlib
- pandas
- seaborn
- numpy
- scipy
📬 Contact
- GitHub: @arnobmukherjee1988
- Email: arnobmukherjee1988@gmail.com
Made with ❤️ for scientists and data enthusiasts
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gptplot-0.1.4.tar.gz.
File metadata
- Download URL: gptplot-0.1.4.tar.gz
- Upload date:
- Size: 49.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2e3c20e48a5abe7f16fd2d4378f38681d125e28efbd2360429a2f50020cae82
|
|
| MD5 |
533f59866e9a9f49b32c33eb71c2d33f
|
|
| BLAKE2b-256 |
34669666a06a7112e4b6ce5bbe519e5b78c62e6c7f6b0a962ef05323d7edea91
|
File details
Details for the file gptplot-0.1.4-py3-none-any.whl.
File metadata
- Download URL: gptplot-0.1.4-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e0c402547becde0a29ae1b668ab285086086434714aa202dfde4a5f8ac1b1da
|
|
| MD5 |
c66c00f5422f1a90b4ed5f6fdf0333dc
|
|
| BLAKE2b-256 |
5ede0e90ec77e8f080268b3da1c1278864d8ff863264aef16174b20086065237
|