Spaces:
Sleeping
Sleeping
#!/usr/bin/env python | |
import datetime | |
import gradio as gr | |
import numpy as np | |
import pandas as pd | |
import plotly.express as px | |
import plotly.graph_objs as go | |
from gradio_calendar import Calendar | |
DESCRIPTION = """ | |
- [GitHub](https://github.com/freddyaboulton/gradio-calendar) | |
- [PyPI](https://pypi.org/project/gradio-calendar/) | |
""" | |
np.random.seed(1) | |
data = np.random.normal(size=(500, 5)).cumsum(axis=0) | |
df = pd.DataFrame(data, columns=["A", "B", "C", "D", "E"]) | |
df.index = pd.to_datetime(pd.date_range("2024-01-01", periods=500)) | |
def update(start_date: datetime.datetime, end_date: datetime.datetime) -> go.Figure: | |
fig = px.line(df) | |
fig.update_layout(xaxis_range=[start_date, end_date], xaxis_rangeslider_visible=True) | |
return fig | |
with gr.Blocks(css="style.css") as demo: | |
with gr.Row(): | |
start_date = Calendar( | |
label="Start date", | |
type="datetime", | |
value=datetime.datetime(2024, 1, 1), | |
) | |
end_date = Calendar( | |
label="End date", | |
type="datetime", | |
value=datetime.datetime(2024, 3, 31), | |
) | |
plot = gr.Plot() | |
gr.on( | |
triggers=[start_date.change, end_date.change], | |
fn=update, | |
inputs=[start_date, end_date], | |
outputs=plot, | |
) | |
demo.load(fn=update, inputs=[start_date, end_date], outputs=plot) | |
gr.Markdown(DESCRIPTION) | |
if __name__ == "__main__": | |
demo.queue().launch() | |