mirror of
https://github.com/gradio-app/gradio.git
synced 2024-11-27 01:40:20 +08:00
79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
|
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()
|