import gradio as gr import pandas as pd import matplotlib import matplotlib.pyplot as plt import altair as alt import numpy as np # documentation: https://www.gradio.app/guides/quickstart # to use the reload mode use the Gradio cli in the terminal: gradio.exe app.py def limit_analysis_to_12_months(input_lst): if len(input_lst)>12: input_lst = input_lst[:12] else: input_lst += [0] * (12 - len(input_lst)) return input_lst def greet(Identite, revenus, depenses, epargne, dettes, is_ratio=False, is_graphe=True ): # Revenus et Depenses revenus = [float(rev.strip()) for rev in revenus.split(sep=',')] revenus = limit_analysis_to_12_months(revenus) depenses = [float(dep.strip()) for dep in depenses.split(sep=',')] depenses = limit_analysis_to_12_months(depenses) # Pandas DataFrame mois = [ "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre" ] data = {'Mois': mois, 'Revenus': revenus, 'Depenses': depenses} df = pd.DataFrame(data) df['Cash_Flow'] = df['Revenus'] - df['Depenses'] df['Epargne'] = df['Cash_Flow'].cumsum() #gr.DataFrame(get_data, every=5) #Plot #fig = plt.figure() #plt.plot(df['Mois'], df['Cash_Flow']) #plt.plot(df, x='Mois', y='Revenus') #plt.title("Big TITLE") lplot1 = gr.LinePlot(df, x="Mois", y="Revenus") lplot2 = gr.LinePlot(df, x="Mois", y="Depenses") return "Guten Tag " + Identite + "!", df, lplot1, lplot2 demo = gr.Interface( fn=greet, inputs=[gr.Textbox('John Doe', info='Rentrez votre prénom et votre nom', label='Identite'), gr.Textbox('4123, 4566, 5667, 5322, 5600, 5800, 5200, 6050, 5400, 5700, 5900, 6400', info='Rentrez vos revenus des 12 derniers mois séparés par une virgule', label='Revenus'), gr.Textbox('3123, 4500, 5000, 5200, 5500, 4100, 6400, 5950, 5900, 5800, 5600, 5990', info='Rentrez vos dépenses des 12 derniers mois séparées par une virgule', label='Dépenses'), gr.Slider(0, 1_000_000, info='Indiquez votre épargne entre 0 et 1 million', label="Épargne"), gr.Slider(0, 1_000_000, info='Indiquez vos dettes entre 0 et 1 million', label='Dettes'), gr.Checkbox(False, info='Voulez-vous afficher vos ratios financiers?', label='Ratios'), gr.Checkbox(True, info='Voulez-vous afficher le graphe de vos finances?', label='Graphe')], outputs=["text", gr.DataFrame(), gr.LinePlot(), gr.LinePlot()], ) """ # Display() if display_graph: df.plot(x='Mois', y=['Revenus', 'Depenses', 'Cash_Flow', 'Epargne'], marker='o', color=['green', 'red', 'cyan', 'blue'], ylabel='Euros', rot=30) else: pass """ demo.launch()