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}