多分、意図通りの使い方の一つであろう、DBとの組み合わせ……ということでSQLite3と組み合わせた例を
実際のところ
グラフはplotlyとの連動で生成します。
steamlitはplotlyとの組み合わせ用メソッドを標準で持っているため、グラフ部分は完全に任せてしまった方が良さげ。
import streamlit as st import pandas as pd import sqlite3 import plotly.express as px from datetime import datetime, timedelta # Connect to SQLite3 database conn = sqlite3.connect("your_database.db") # Read the loggingData table query = "SELECT * FROM loggingData" data = pd.read_sql_query(query, conn) # Convert the datetime strings to datetime objects data["記録日時"] = pd.to_datetime(data["記録日時"]) st.title("SQLite3 and Streamlit Example") # Create a slider to specify the date range min_date = (datetime.now() - timedelta(days=100)).date() max_date = datetime.now().date() date_range = st.slider("Date Range", min_date, max_date, (min_date, max_date)) # Filter the data based on the selected date range filtered_data = data[(data["記録日時"] >= date_range[0]) & (data["記録日時"] <= date_range[1])] # Create a line chart with the filtered data fig = px.line(filtered_data, x="記録日時", y="測定値", color="記録装置ID") st.plotly_chart(fig) # Find the maximum value for each device max_values = filtered_data.groupby("記録装置ID").max().reset_index() # Display the maximum values st.subheader("Maximum Values for Each Device") st.write(max_values[["記録装置ID", "記録日時", "測定値"]]) # Close the connection to the SQLite3 database conn.close()