gradio/demo/bar_plot/run.py
aliabid94 9b42ba8f10
Update guides esp plots (#8907)
* changes

* changes

* revert changes

* changes

* add changeset

* notebooks script

* changes

* changes

---------

Co-authored-by: Ali Abid <aliabid94@gmail.com>
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com>
2024-07-29 22:08:51 -07:00

139 lines
3.6 KiB
Python

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