Skip to main content

Create plots in Python with AI

Project description

PlotAI logo

🎨🤖 Create Python plots in matplotlib with LLM 🎨🤖

🚀 Get Started   •   🤝 Issues   •   🐦 Twitter   •   👩‍💼 LinkedIn

PlotAI 🎨🤖

The easiest way to create plots in Python and Matplotlib. The plotai is using LLM to generate code and plots.

The idea:

  1. User provides input DataFrame and prompt.
  2. The PlotAI constructs a prompt for LLM, which contains the first 5 rows of DataFrame and the user's prompt and asks for Python code as output.
  3. Returned Python code is executed, and the plot is displayed.

https://github.com/mljar/plotai/assets/6959032/cb80bc35-e534-466d-aa1d-ce240d35f624

The simplest possible API for plotting:

# import packages
import pandas as pd
from plotai import PlotAI
# create some data
df = pd.DataFrame({"x":[1,2,3], "y": [4,5,6]})
# do a plot
plot = PlotAI(df)
plot.make("scatter plot")

The PlotAI class has only one method, make().

It works in Python scripts and in notebooks (Jupyter, Colab, VS Code).

PlotAI logo

🚀 Get started

Install plotai package:

pip install plotai

Create .env file with the OpenAI API key:

OPENAI_API_KEY=your-key-here

You can also pass the OpenAI API key in Python:

import os
os.environ["OPENAI_API_KEY"] = "your-key-here"

Import plotai and make plots:

# import PlotAI
from plotai import PlotAI

# create PlotAI object, pass pandas DataFrame as an argument
plot = PlotAI(df)

# make a plot, just tell what you want
plot.make("make a scatter plot")

By default the library will use 'gpt-3.5-turbo'. You can use different OpenAI models:

# import PlotAI
from plotai import PlotAI

# create PlotAI object, pass pandas DataFrame as an argument
plot = PlotAI(df, model_version="gpt-4")

# make a plot, just tell what you want
plot.make("make a scatter plot")

More examples

Analyze the GPD dataset

https://github.com/mljar/plotai/assets/6959032/e62b1a26-7c91-40e4-9d2d-1a600d8dd7ba

Analyze the Iris dataset

👩‍💼🐦 Connect with Us on LinkedIn & Twitter

Stay up-to-date with the latest updates about PlotAI 🎨🤖 by following us on Twitter (MLJAR Twitter) and LinkedIn (Aleksandra LinkedIn & Piotr LinkedIn). We look forward to connecting with you and hearing your thoughts, ideas, and experiences with PlotAI. Let's explore the future of AI together!

⚠️ Limitations

PlotAI is in very experimental form, below are some limitations:

  • PlotAI is using OpenAI ChatGPT-3.5-turbo for completions, it will be nice to extend to other LLMs.
  • PlotAI is sending 5 first rows from your DataFrame to OpenAI ChatGPT. If you have sensitive data, please remove/encode it before passing to PlotAI.
  • PlotAI is executing Python code returned by LLM, it can be dangerous and unsafe. It would be nice to have the option to accept the response code before execution.

🛡 Disclaimer

This project, PlotAI, is provided "as is" without any warranty, express or implied. By using this software, you agree to assume all risks associated with its use, including but not limited to data loss, system failure, or any other issues that may arise. The developers and contributors of this project do not accept any responsibility or liability for any losses, damages, or other consequences that may occur as a result of using this software.

Please note that the use of the OpenAI language models can be expensive due to its token usage. By utilizing this project, you acknowledge that you are responsible for monitoring and managing your own token usage and the associated costs. It is highly recommended to check your OpenAI API usage regularly and set up any necessary limits or alerts to prevent unexpected charges.

Convert Python Notebooks to web applications 📓 -> 🌐

We are working on framework Mercury for sharing Python notebooks as interactive web applications. The framework is open source. We also working on a service for one-click deployment of Python notebooks. You can check Python notebooks integrations on our website.

All the best!

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

plotai-0.0.5.tar.gz (12.9 kB view details)

Uploaded Source

File details

Details for the file plotai-0.0.5.tar.gz.

File metadata

  • Download URL: plotai-0.0.5.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for plotai-0.0.5.tar.gz
Algorithm Hash digest
SHA256 cf2d3ba58970fb37683bf29d07e67ced809894c5690f236948993bb8862de60f
MD5 5328a33acb28b2416af189029c4193a8
BLAKE2b-256 52b43ef8b369234ed2ff3331c37b3cd3a1e7d46257cb5856d1e7fdbf8ab8b936

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page