|
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']) |
|
|