File size: 1,893 Bytes
0bd62e5 |
1 |
{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: sales_projections"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio pandas numpy matplotlib"]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "import gradio as gr\n", "\n", "def sales_projections(employee_data):\n", " sales_data = employee_data.iloc[:, 1:4].astype(\"int\").to_numpy()\n", " regression_values = np.apply_along_axis(\n", " lambda row: np.array(np.poly1d(np.polyfit([0, 1, 2], row, 2))), 0, sales_data\n", " )\n", " projected_months = np.repeat(\n", " np.expand_dims(np.arange(3, 12), 0), len(sales_data), axis=0\n", " )\n", " projected_values = np.array(\n", " [\n", " month * month * regression[0] + month * regression[1] + regression[2]\n", " for month, regression in zip(projected_months, regression_values)\n", " ]\n", " )\n", " plt.plot(projected_values.T)\n", " plt.legend(employee_data[\"Name\"])\n", " return employee_data, plt.gcf(), regression_values\n", "\n", "demo = gr.Interface(\n", " sales_projections,\n", " gr.Dataframe(\n", " headers=[\"Name\", \"Jan Sales\", \"Feb Sales\", \"Mar Sales\"],\n", " value=[[\"Jon\", 12, 14, 18], [\"Alice\", 14, 17, 2], [\"Sana\", 8, 9.5, 12]],\n", " ),\n", " [\"dataframe\", \"plot\", \"numpy\"],\n", " description=\"Enter sales figures for employees to predict sales trajectory over year.\",\n", ")\n", "if __name__ == \"__main__\":\n", " demo.launch()\n"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5} |