# GPTPlot
[](https://badge.fury.io/py/gptplot)
[](https://pypi.org/project/gptplot/)
[](https://opensource.org/licenses/MIT)
**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
```bash
pip install gptplot
```
Requires Python 3.9+
## 🚀 Quick Start
### Basic plotting
```bash
# 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
```bash
# 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
```bash
# 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
```bash
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
```bash
# 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
```bash
# 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:
```bash
--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
```bash
gptplot data.csv -o myplot --output-dir figures/
```
### File naming schemes
```bash
# 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
```bash
# 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:
```bash
# Coming soon!
gptplot --llm "plot voltage vs time with a dark theme"
```
## 📖 Documentation
Full documentation available at: [GitHub Repository](https://github.com/yourusername/gptplot)
## 🤝 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](https://github.com/arnobmukherjee1988)
- Email: arnobmukherjee1988@gmail.com
---
**Made with ❤️ for scientists and data enthusiasts**
Raw data
{
"_id": null,
"home_page": null,
"name": "gptplot",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "Arnob <arnobmukherjee1988@gmail.com>",
"keywords": "plotting, visualization, scientific, gnuplot, data-science, matplotlib, cli, ai, plotting-tool",
"author": null,
"author_email": "Arnob <arnobmukherjee1988@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/34/66/9666a06a7112e4b6ce5bbe519e5b78c62e6c7f6b0a962ef05323d7edea91/gptplot-0.1.4.tar.gz",
"platform": null,
"description": "# GPTPlot\n\n[](https://badge.fury.io/py/gptplot)\n[](https://pypi.org/project/gptplot/)\n[](https://opensource.org/licenses/MIT)\n\n**AI-powered scientific plotting tool inspired by gnuplot**\n\nGPTPlot 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.\n\n## \u2728 Features\n\n- \ud83d\ude80 **Fast CLI plotting** - Generate plots without writing code\n- \ud83d\udcca **Multiple plot types** - Line, scatter, heatmap, quiver, surface, and more\n- \ud83c\udfa8 **Beautiful themes** - Journal, presentation, and dark modes\n- \ud83d\udcc1 **Smart data loading** - Auto-detects CSV, DAT, TXT formats\n- \u2699\ufe0f **YAML configs** - Reproducible plots via configuration files\n- \ud83d\udd22 **Interactive mode** - Explore data with an interactive shell\n- \ud83d\udcc8 **Data analysis** - Built-in correlation, fitting, and statistics\n- \ud83e\udd16 **AI-Ready** - Designed for future LLM integration\n\n## \ud83d\udd27 Installation\n\n```bash\npip install gptplot\n```\n\nRequires Python 3.9+\n\n## \ud83d\ude80 Quick Start\n\n### Basic plotting\n```bash\n# Simple line plot\ngptplot data.csv --x time --y voltage\n\n# Auto-detect columns and plot type\ngptplot data.csv\n\n# Create scatter plot with custom styling\ngptplot data.csv --type scatter --theme journal -o figure1\n```\n\n### Multiple plot types\n```bash\n# Heatmap\ngptplot grid.dat --x 1 --y 2 --z 3 --type heatmap --cmap viridis\n\n# Histogram\ngptplot data.csv --y values --type hist --bins 50\n\n# Box plot\ngptplot data.csv --x category --y measurement --type box\n```\n\n### Configuration files\n```bash\n# Create plot_config.yaml\ncat > plot_config.yaml << EOF\ntype: scatter\nx: time\ny: voltage\nxlabel: Time (s)\nylabel: Voltage (V)\ntheme: journal\ndpi: 300\nEOF\n\n# Use config\ngptplot data.csv --config plot_config.yaml\n```\n\n### Interactive mode\n```bash\ngptplot data.csv --interactive\n\n# In the shell:\n> plot x=time y=voltage type=line\n> set theme dark\n> save my_plot\n> quit\n```\n\n## \ud83d\udcca Examples\n\n### Data Science Workflow\n```bash\n# Correlation heatmap\ngptplot data.csv --corr\n\n# Statistical summary\ngptplot data.csv --summary\n\n# Polynomial fitting\ngptplot data.csv --x time --y signal --fit poly2\n```\n\n### Scientific Plotting\n```bash\n# Vector field (quiver plot)\ngptplot spins.dat --no-header \\\n --x 1 --y 2 --u 4 --v 5 --z 6 \\\n --type quiver --cmap coolwarm\n\n# 3D surface\ngptplot grid.dat --x 1 --y 2 --z 3 \\\n --type surface --cmap viridis\n```\n\n## \ud83c\udfa8 Themes\n\nBuilt-in professional themes:\n\n```bash\n--theme journal # Clean, publication-ready\n--theme presentation # Large fonts, high contrast\n--theme dark # Dark background\n--theme notebook # Jupyter-style\n```\n\n## \ud83d\udcc1 Supported Formats\n\n- **Input**: CSV, DAT, TXT (auto-detected delimiters)\n- **Output**: PNG, PDF, SVG\n- **Config**: YAML, JSON\n\n## \ud83d\udee0\ufe0f Advanced Features\n\n### Custom output directory\n```bash\ngptplot data.csv -o myplot --output-dir figures/\n```\n\n### File naming schemes\n```bash\n# Overwrite (default)\ngptplot data.csv -o plot\n\n# Timestamp (experiment tracking)\ngptplot data.csv --save-naming timestamp -o experiment\n\n# Numbered (multiple runs)\ngptplot data.csv --save-naming numbered -o run\n```\n\n### Column specification\n```bash\n# By name\ngptplot data.csv --x time --y voltage\n\n# By 1-based index\ngptplot data.dat --no-header --x 1 --y 2\n```\n\n## \ud83e\udd16 Future: AI Integration\n\nGPTPlot is designed with future LLM integration in mind:\n```bash\n# Coming soon!\ngptplot --llm \"plot voltage vs time with a dark theme\"\n```\n\n## \ud83d\udcd6 Documentation\n\nFull documentation available at: [GitHub Repository](https://github.com/yourusername/gptplot)\n\n## \ud83e\udd1d Contributing\n\nContributions welcome! Please feel free to submit a Pull Request.\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## \ud83d\ude4f Acknowledgements\n\nInspired by gnuplot's simplicity and powered by Python's scientific stack:\n- matplotlib\n- pandas\n- seaborn\n- numpy\n- scipy\n\n## \ud83d\udcec Contact\n\n- GitHub: [@arnobmukherjee1988](https://github.com/arnobmukherjee1988)\n- Email: arnobmukherjee1988@gmail.com\n\n---\n\n**Made with \u2764\ufe0f for scientists and data enthusiasts**\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "AI-powered scientific plotting tool inspired by gnuplot",
"version": "0.1.4",
"project_urls": null,
"split_keywords": [
"plotting",
" visualization",
" scientific",
" gnuplot",
" data-science",
" matplotlib",
" cli",
" ai",
" plotting-tool"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5ede0e90ec77e8f080268b3da1c1278864d8ff863264aef16174b20086065237",
"md5": "c66c00f5422f1a90b4ed5f6fdf0333dc",
"sha256": "3e0c402547becde0a29ae1b668ab285086086434714aa202dfde4a5f8ac1b1da"
},
"downloads": -1,
"filename": "gptplot-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c66c00f5422f1a90b4ed5f6fdf0333dc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 19702,
"upload_time": "2025-11-03T13:44:23",
"upload_time_iso_8601": "2025-11-03T13:44:23.739052Z",
"url": "https://files.pythonhosted.org/packages/5e/de/0e90ec77e8f080268b3da1c1278864d8ff863264aef16174b20086065237/gptplot-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "34669666a06a7112e4b6ce5bbe519e5b78c62e6c7f6b0a962ef05323d7edea91",
"md5": "533f59866e9a9f49b32c33eb71c2d33f",
"sha256": "b2e3c20e48a5abe7f16fd2d4378f38681d125e28efbd2360429a2f50020cae82"
},
"downloads": -1,
"filename": "gptplot-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "533f59866e9a9f49b32c33eb71c2d33f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 49551,
"upload_time": "2025-11-03T13:44:25",
"upload_time_iso_8601": "2025-11-03T13:44:25.260473Z",
"url": "https://files.pythonhosted.org/packages/34/66/9666a06a7112e4b6ce5bbe519e5b78c62e6c7f6b0a962ef05323d7edea91/gptplot-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-03 13:44:25",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "gptplot"
}