File size: 5,074 Bytes
0ad74ed
1
{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: bar_plot"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio pandas"]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["import gradio as gr\n", "import pandas as pd\n", "import random\n", "\n", "simple = pd.DataFrame(\n", "    {\n", "        \"a\": [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\"],\n", "        \"b\": [28, 55, 43, 91, 81, 53, 19, 87, 52],\n", "    }\n", ")\n", "\n", "fake_barley = pd.DataFrame(\n", "    {\n", "        \"site\": [\n", "            random.choice(\n", "                [\n", "                    \"University Farm\",\n", "                    \"Waseca\",\n", "                    \"Morris\",\n", "                    \"Crookston\",\n", "                    \"Grand Rapids\",\n", "                    \"Duluth\",\n", "                ]\n", "            )\n", "            for _ in range(120)\n", "        ],\n", "        \"yield\": [random.randint(25, 75) for _ in range(120)],\n", "        \"variety\": [\n", "            random.choice(\n", "                [\n", "                    \"Manchuria\",\n", "                    \"Wisconsin No. 38\",\n", "                    \"Glabron\",\n", "                    \"No. 457\",\n", "                    \"No. 462\",\n", "                    \"No. 475\",\n", "                ]\n", "            )\n", "            for _ in range(120)\n", "        ],\n", "        \"year\": [\n", "            random.choice(\n", "                [\n", "                    \"1931\",\n", "                    \"1932\",\n", "                ]\n", "            )\n", "            for _ in range(120)\n", "        ],\n", "    }\n", ")\n", "\n", "def bar_plot_fn(display):\n", "    if display == \"simple\":\n", "        return gr.BarPlot(\n", "            simple,\n", "            x=\"a\",\n", "            y=\"b\",\n", "            title=\"Simple Bar Plot with made up data\",\n", "            tooltip=[\"a\", \"b\"],\n", "            y_lim=[20, 100],\n", "        )\n", "    elif display == \"stacked\":\n", "        return gr.BarPlot(\n", "            fake_barley,\n", "            x=\"variety\",\n", "            y=\"yield\",\n", "            color=\"site\",\n", "            title=\"Barley Yield Data\",\n", "            tooltip=[\"variety\", \"site\"],\n", "        )\n", "    elif display == \"grouped\":\n", "        return gr.BarPlot(\n", "            fake_barley.astype({\"year\": str}),\n", "            x=\"year\",\n", "            y=\"yield\",\n", "            color=\"year\",\n", "            group=\"site\",\n", "            title=\"Barley Yield by Year and Site\",\n", "            group_title=\"\",\n", "            tooltip=[\"yield\", \"site\", \"year\"],\n", "        )\n", "    elif display == \"simple-horizontal\":\n", "        return gr.BarPlot(\n", "            simple,\n", "            x=\"a\",\n", "            y=\"b\",\n", "            x_title=\"Variable A\",\n", "            y_title=\"Variable B\",\n", "            title=\"Simple Bar Plot with made up data\",\n", "            tooltip=[\"a\", \"b\"],\n", "            vertical=False,\n", "            y_lim=[20, 100],\n", "        )\n", "    elif display == \"stacked-horizontal\":\n", "        return gr.BarPlot(\n", "            fake_barley,\n", "            x=\"variety\",\n", "            y=\"yield\",\n", "            color=\"site\",\n", "            title=\"Barley Yield Data\",\n", "            vertical=False,\n", "            tooltip=[\"variety\", \"site\"],\n", "        )\n", "    elif display == \"grouped-horizontal\":\n", "        return gr.BarPlot(\n", "            fake_barley.astype({\"year\": str}),\n", "            x=\"year\",\n", "            y=\"yield\",\n", "            color=\"year\",\n", "            group=\"site\",\n", "            title=\"Barley Yield by Year and Site\",\n", "            group_title=\"\",\n", "            tooltip=[\"yield\", \"site\", \"year\"],\n", "            vertical=False,\n", "        )\n", "\n", "with gr.Blocks() as bar_plot:\n", "    with gr.Row():\n", "        with gr.Column():\n", "            display = gr.Dropdown(\n", "                choices=[\n", "                    \"simple\",\n", "                    \"stacked\",\n", "                    \"grouped\",\n", "                    \"simple-horizontal\",\n", "                    \"stacked-horizontal\",\n", "                    \"grouped-horizontal\",\n", "                ],\n", "                value=\"simple\",\n", "                label=\"Type of Bar Plot\",\n", "            )\n", "        with gr.Column():\n", "            plot = gr.BarPlot()\n", "    display.change(bar_plot_fn, inputs=display, outputs=plot)\n", "    bar_plot.load(fn=bar_plot_fn, inputs=display, outputs=plot)\n", "\n", "bar_plot.launch()\n"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5}