application that show a graph and we can pass the number of days we want to show data dynamically without had to refresh the whole page
To upload files, please first save the app
import streamlit as st
import pandas as pd
import numpy as np
import datetime
# Function to generate sample time series data
def generate_data(days):
end_date = datetime.datetime.now()
start_date = end_date - datetime.timedelta(days=days)
dates = pd.date_range(start=start_date, end=end_date, freq='D')
values = np.random.normal(loc=100, scale=15, size=len(dates))
df = pd.DataFrame({
'Date': dates,
'Value': values
})
return df
# Initialize session state for data if not exists
if 'data' not in st.session_state:
st.session_state.data = generate_data(30) # Default 30 days
st.title('Dynamic Time Series Graph')
# Slider for selecting number of days
days = st.slider('Select number of days to display',
min_value=7,
max_value=90,
value=30,
key='days_slider')
# Update the data when slider changes
if days != len(st.session_state.data):
st.session_state.data = generate_data(days)
# Display the line chart
st.line_chart(
st.session_state.data.set_index('Date')['Value']
)
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?