matplotlib_ai
Avez-vous également une relation amour-haine avec matplotlib ? Moi aussi! C'est pourquoi j'ai créé ce mini-projet qui peut vous aider à représenter graphiquement vos données en langage naturel. Les dépendances du package nécessitent openai
et matplotlib
, et elles sont incroyablement faciles à utiliser. En faisant appel à l'API GPT d'OpenAI, à l'ingénierie rapide et en utilisant un apprentissage en quelques étapes, matplotlib_ai
est capable de générer des graphiques sans que vous ayez à écrire une seule ligne de code matplotlib
!
Importez matplotlib_ai
via pip :
pip install matplotlib_ai
Supposons que nous ayons un dictionnaire data
avec 4 courbes étiquetées 'a'
, 'b'
, 'c'
et 'd'
:
import numpy as np
data = { 'a' : [...], # some curve
'b' : [...], # some curve
'c' : [...], # some curve
'd' : [...], # some curve}
Si nous voulions représenter graphiquement chaque courbe et faire en sorte que la courbe 'a'
soit en pointillés et appeler ce graphique "mon ekg quand je te vois :)", la chose la plus sensée serait d'écrire le code matplotlib
comme tel :
import matplotlib . pyplot as plt
plt . plot ( data [ 'a' ], linestyle = 'dashed' , label = 'a' )
plt . plot ( data [ 'b' ], label = 'b' )
plt . plot ( data [ 'c' ], label = 'c' )
plt . plot ( data [ 'd' ], label = 'd' )
plt . title ( 'my ekg when i see you :)' )
plt . legend ()
plt . show ()
Cependant, avec matplotlib_ai
c'est aussi simple que :
from matplotlib_ai . matplotlib_ai import matplotlib_ai
mpl_ai = matplotlib_ai ( "YOUR-OPENAI-API-KEY" )
prompt = "graph a curve for each item in data and title the graph 'my ekg when i see you :)'. " +
"Make curve 'a' in data a dashed line."
code = mpl_ai ( prompt )
Ensuite, mpl_ai
générerait :
Pour voir le code généré par GPT, imprimez-le simplement comme ceci :
>>> print(code) # the code generated by GPT
import matplotlib.pyplot as plt
for key, value in data.items():
if key == 'a':
plt.plot(value, linestyle='dashed', label=key)
else:
plt.plot(value, label=key)
plt.title('my ekg when i see you :)')
plt.legend()
plt.show()
Ce projet n'en est qu'à ses débuts, j'espère le rendre plus complet avec le temps :)