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
Release files for gptplot 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gptplot-0.1.4.tar.gz | 49.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gptplot-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 69.3 kB
Release files / gptplot-0.1.4.tar.gz
| Download URL | gptplot-0.1.4.tar.gz |
|---|---|
| Size | 49.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2e3c20e48a5abe7f16fd2d4378f38681d125e28efbd2360429a2f50020cae82
|
|
BLAKE2b-256 checksum How to use checksums |
34669666a06a7112e4b6ce5bbe519e5b78c62e6c7f6b0a962ef05323d7edea91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|
Release files / gptplot-0.1.4-py3-none-any.whl
| Download URL | gptplot-0.1.4-py3-none-any.whl |
|---|---|
| Size | 19.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3e0c402547becde0a29ae1b668ab285086086434714aa202dfde4a5f8ac1b1da
|
|
BLAKE2b-256 checksum How to use checksums |
5ede0e90ec77e8f080268b3da1c1278864d8ff863264aef16174b20086065237
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|