| import streamlit as st |
| import pandas as pd |
| import seaborn as sns |
| import matplotlib.pyplot as plt |
|
|
| |
| data_y = pd.read_csv("merged_y.csv") |
| data_p = pd.read_csv("merged_p.csv") |
|
|
| |
|
|
| start_year =st.sidebar.selectbox("เลือกปีเริ่มต้น",options=list(range(2002, 2024))) |
| end_year = st.sidebar.selectbox("เลือกปีสิ้นสุด", options=list(range(start_year, 2025))) |
|
|
| |
| data_y['date'] =pd.to_datetime(data_y['date']) |
| data_p['date'] = pd.to_datetime(data_p['date']) |
|
|
| |
|
|
| filtered_data = data_y[(data_y["date"].dt.year >= start_year) & (data_y["date"].dt.year <= end_year)] |
| filtered_data_p = data_p[(data_p["date"].dt.year >= start_year) & (data_p["date"].dt.year <= end_year)] |
|
|
| |
| selected_data = st.sidebar.selectbox("เลือกข้อมูลที่ต้องการโชว์", |
| options=["Electricity", "LPG", "Diesel"]) |
|
|
| |
| filtered_data = filtered_data[filtered_data["symbol"] == selected_data] |
| filtered_data_p = filtered_data_p[filtered_data_p["symbol"] == selected_data] |
|
|
| |
| filtered_data['date']= pd.to_datetime(filtered_data['date']) |
| filtered_data_p['date']= pd.to_datetime(filtered_data_p['date']) |
|
|
| filtered_data['date'] = filtered_data['date'].dt.strftime('%Y-%m-%d') |
| filtered_data_p['date'] = filtered_data_p['date'].dt.strftime('%Y-%m-%d') |
|
|
| db = filtered_data.copy() |
| db_p = filtered_data_p.copy() |
|
|
| db['date']= pd.to_datetime(db['date']) |
| db_p['date']= pd.to_datetime(db_p['date']) |
|
|
| db['date'] = db['date'].dt.strftime('%Y-%m-%d') |
| db_p['date'] = db_p['date'].dt.strftime('%Y-%m-%d') |
|
|
| def plot_graph(x, y, xp, yp): |
| st.write("### กราฟเส้น Time Series ตั้งแต่ปี"+" "+str(start_year)+" "+"ถึงปี"+" "+str(end_year)) |
| plt.figure(figsize=(10, 6)) |
| sns.set(style="whitegrid") |
| color = 'yellow' if selected_data == 'Electricity' else 'green' if selected_data == 'LPG' else 'red' |
| sns.lineplot(x=x, y=y, label="Actual", color=color) |
| sns.lineplot(x=xp, y=yp, label="Predict", color="blue") |
| plt.xlabel("Date") |
| plt.ylabel("Value") |
| plt.title("Time Series plot") |
| plt.legend() |
| return st.pyplot(plt) |
|
|
| plot_graph(db['date'], db['Y'], db_p['date'], db_p['predict']) |