gradio/demo/native_plots/line_plot_demo.py

79 lines
2.2 KiB
Python
Raw Normal View History

import gradio as gr
from vega_datasets import data
stocks = data.stocks()
gapminder = data.gapminder()
gapminder = gapminder.loc[
gapminder.country.isin(["Argentina", "Australia", "Afghanistan"])
]
climate = data.climate()
seattle_weather = data.seattle_weather()
def line_plot_fn(dataset):
if dataset == "stocks":
return gr.LinePlot.update(
stocks,
x="date",
y="price",
color="symbol",
color_legend_position="bottom",
title="Stock Prices",
tooltip=['date', 'price', 'symbol'],
height=300,
width=500
)
elif dataset == "climate":
return gr.LinePlot.update(
climate,
x="DATE",
y="HLY-TEMP-NORMAL",
y_lim=[250, 500],
title="Climate",
tooltip=['DATE', 'HLY-TEMP-NORMAL'],
height=300,
width=500
)
elif dataset == "seattle_weather":
return gr.LinePlot.update(
seattle_weather,
x="date",
y="temp_min",
tooltip=["weather", "date"],
overlay_point=True,
title="Seattle Weather",
height=300,
width=500
)
elif dataset == "gapminder":
return gr.LinePlot.update(
gapminder,
x="year",
y="life_expect",
color="country",
title="Life expectancy for countries",
stroke_dash="cluster",
x_lim=[1950, 2010],
tooltip=['country', 'life_expect'],
stroke_dash_legend_title="Country Cluster",
height=300,
width=500
)
with gr.Blocks() as line_plot:
with gr.Row():
with gr.Column():
dataset = gr.Dropdown(
choices=["stocks", "climate", "seattle_weather", "gapminder"],
value="stocks",
)
with gr.Column():
plot = gr.LinePlot(show_label=False).style(container=False)
dataset.change(line_plot_fn, inputs=dataset, outputs=plot)
line_plot.load(fn=line_plot_fn, inputs=dataset, outputs=plot)
if __name__ == "__main__":
line_plot.launch()