import sqlite3 import pandas as pd import plotly.express as px TABLE_NAME = "stats" INTERVAL = 20 # on cron interval is 10min # Create your connection. cnx = sqlite3.connect('data.sqlite') df = pd.read_sql_query(f"SELECT * FROM {TABLE_NAME}", cnx) df = df.set_index("date") df = df[::INTERVAL] print(f"Find {len(df)} items") fig = px.area(df, title="Wide-Form Input") fig.for_each_trace(lambda trace: trace.update(fillcolor = trace.line.color)) fig.write_html("stats.html", include_plotlyjs="cdn")