Commit ยท
b951769
1
Parent(s): e67bd82
Guardar mis cambios locales
Browse files
app.py
CHANGED
|
@@ -98,55 +98,4 @@ def upload_and_forecast(uploaded_file, period):
|
|
| 98 |
|
| 99 |
future_n_periods = forecast_period
|
| 100 |
future_fitted, confint = train_test_model.predict(X=df.iloc[-future_n_periods:, 1:], n_periods=future_n_periods, return_conf_int=True, freq='3D')
|
| 101 |
-
future_index_of_fc = pd.date_range(df['Sales'].index[-1], periods=
|
| 102 |
-
future_fitted_series = pd.Series(future_fitted)
|
| 103 |
-
future_fitted_series.index = future_index_of_fc
|
| 104 |
-
|
| 105 |
-
# Calculate sales growth
|
| 106 |
-
future_sales_growth = sales_growth(df, future_fitted_series)
|
| 107 |
-
|
| 108 |
-
# Prepare merged data for chart plotting
|
| 109 |
-
merged_data = merge_forecast_data(df['Sales'], fitted_series, future_fitted_series)
|
| 110 |
-
|
| 111 |
-
# Plot the charts
|
| 112 |
-
fig_compare = go.Figure()
|
| 113 |
-
fig_compare.add_trace(go.Scatter(x=merged_data[merged_data.columns[0]], y=merged_data['Actual Sales'], mode='lines', name='Actual Sales'))
|
| 114 |
-
fig_compare.add_trace(go.Scatter(x=merged_data[merged_data.columns[0]], y=merged_data['Predicted Sales'], mode='lines', name='Predicted Sales', line=dict(color='#006400')))
|
| 115 |
-
fig_compare.update_layout(title='๐ Historical Sales Data', xaxis_title='Date', yaxis_title='Sales')
|
| 116 |
-
|
| 117 |
-
fig_forecast = go.Figure()
|
| 118 |
-
fig_forecast.add_trace(go.Scatter(x=merged_data[merged_data.columns[0]], y=merged_data['Actual Sales'], mode='lines', name='Actual Sales'))
|
| 119 |
-
fig_forecast.add_trace(go.Scatter(x=merged_data[merged_data.columns[0]], y=merged_data['Forecasted Future Sales'], mode='lines', name='Future Forecasted Sales'))
|
| 120 |
-
fig_forecast.update_layout(title='๐ฎ Forecasted Sales Data', xaxis_title='Date', yaxis_title='Sales')
|
| 121 |
-
|
| 122 |
-
# Return the figures and growth data
|
| 123 |
-
return fig_compare, fig_forecast, future_sales_growth
|
| 124 |
-
|
| 125 |
-
# Gradio Interface setup with external CSS file and sidebar
|
| 126 |
-
def create_sidebar():
|
| 127 |
-
with gr.Sidebar():
|
| 128 |
-
gr.Markdown("### ๐ Upload your sales data (CSV)")
|
| 129 |
-
uploaded_file = gr.File(label="Choose your file", elem_id="file-uploader")
|
| 130 |
-
gr.Markdown("### โณ Forecast Period (Days)")
|
| 131 |
-
period = gr.Slider(minimum=30, maximum=90, step=1, label="Forecast period (in days)")
|
| 132 |
-
return uploaded_file, period
|
| 133 |
-
|
| 134 |
-
# Create the sidebar and main interface
|
| 135 |
-
uploaded_file, period = create_sidebar()
|
| 136 |
-
|
| 137 |
-
# Gradio interface for main content
|
| 138 |
-
iface = gr.Interface(
|
| 139 |
-
fn=upload_and_forecast,
|
| 140 |
-
inputs=[uploaded_file, period],
|
| 141 |
-
outputs=[
|
| 142 |
-
gr.Plot(label="๐ Historical vs Predicted Sales"),
|
| 143 |
-
gr.Plot(label="๐ฎ Forecasted Sales Data"),
|
| 144 |
-
gr.DataFrame(label="๐ Sales Growth")
|
| 145 |
-
],
|
| 146 |
-
live=True,
|
| 147 |
-
title="Sales Forecasting System โจ",
|
| 148 |
-
description="Upload your sales data to start forecasting ๐",
|
| 149 |
-
css=open("styles.css", "r").read() # Load the external CSS file here
|
| 150 |
-
)
|
| 151 |
-
|
| 152 |
-
iface.launch()
|
|
|
|
| 98 |
|
| 99 |
future_n_periods = forecast_period
|
| 100 |
future_fitted, confint = train_test_model.predict(X=df.iloc[-future_n_periods:, 1:], n_periods=future_n_periods, return_conf_int=True, freq='3D')
|
| 101 |
+
future_index_of_fc = pd.date_range(df['Sales'].index[-1], periods=future
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|