Spaces:
Sleeping
Sleeping
File size: 2,625 Bytes
147cb84 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
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(
stocks,
x="date",
y="price",
color="symbol",
x_lim=None,
y_lim=None,
stroke_dash=None,
tooltip=['date', 'price', 'symbol'],
overlay_point=False,
title="Stock Prices",
stroke_dash_legend_title=None,
height=300,
width=500
)
elif dataset == "climate":
return gr.LinePlot(
climate,
x="DATE",
y="HLY-TEMP-NORMAL",
color=None,
x_lim=None,
y_lim=[250, 500],
stroke_dash=None,
tooltip=['DATE', 'HLY-TEMP-NORMAL'],
overlay_point=False,
title="Climate",
stroke_dash_legend_title=None,
height=300,
width=500
)
elif dataset == "seattle_weather":
return gr.LinePlot(
seattle_weather,
x="date",
y="temp_min",
color=None,
x_lim=None,
y_lim=None,
stroke_dash=None,
tooltip=["weather", "date"],
overlay_point=True,
title="Seattle Weather",
stroke_dash_legend_title=None,
height=300,
width=500
)
elif dataset == "gapminder":
return gr.LinePlot(
gapminder,
x="year",
y="life_expect",
color="country",
x_lim=[1950, 2010],
y_lim=None,
stroke_dash="cluster",
tooltip=['country', 'life_expect'],
overlay_point=False,
title="Life expectancy for countries",
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()
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()
|