gradio/demo/live_dashboard/run.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

59 lines
1.5 KiB
Python
Raw Normal View History

import math
import pandas as pd
import gradio as gr
import datetime
import numpy as np
def get_time():
return datetime.datetime.now()
plot_end = 2 * math.pi
def get_plot(period=1):
global plot_end
x = np.arange(plot_end - 2 * math.pi, plot_end, 0.02)
y = np.sin(2 * math.pi * period * x)
update = gr.LinePlot(
value=pd.DataFrame({"x": x, "y": y}),
x="x",
y="y",
title="Plot (updates every second)",
width=600,
height=350,
)
plot_end += 2 * math.pi
if plot_end > 1000:
plot_end = 2 * math.pi
return update
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
c_time2 = gr.Textbox(label="Current Time refreshed every second")
gr.Textbox(
"Change the value of the slider to automatically update the plot",
label="",
)
period = gr.Slider(
label="Period of plot", value=1, minimum=0, maximum=10, step=1
)
plot = gr.LinePlot(show_label=False)
with gr.Column():
name = gr.Textbox(label="Enter your name")
greeting = gr.Textbox(label="Greeting")
button = gr.Button(value="Greet")
button.click(lambda s: f"Hello {s}", name, greeting)
demo.load(lambda: datetime.datetime.now(), None, c_time2, every=1)
dep = demo.load(get_plot, None, plot, every=1)
period.change(get_plot, period, plot, every=1, cancels=[dep])
if __name__ == "__main__":
demo.queue().launch()