File size: 2,647 Bytes
9599c11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import streamlit as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Load data
data_y = pd.read_csv("merged_y.csv")
data_p = pd.read_csv("merged_p.csv")

# Sidebar - เลือกปีเริ่มต้นและสิ้นสุด

start_year =st.sidebar.selectbox("เลือกปีเริ่มต้น",options=list(range(2002, 2024)))
end_year = st.sidebar.selectbox("เลือกปีสิ้นสุด", options=list(range(start_year, 2025)))

# Filter data based on selected years
data_y['date'] =pd.to_datetime(data_y['date'])
data_p['date'] = pd.to_datetime(data_p['date'])

# Filter data based on selected years

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

# สร้างตัวเลือก Selectbox
selected_data = st.sidebar.selectbox("เลือกข้อมูลที่ต้องการโชว์",
    options=["Electricity", "LPG", "Diesel"])

# Filter data based on selected data type
filtered_data = filtered_data[filtered_data["symbol"] == selected_data]
filtered_data_p = filtered_data_p[filtered_data_p["symbol"] == selected_data]

# Plot time series
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")  # ตั้งค่าสไตล์กราฟของ Seaborn
    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() แทน plt.plot() เพื่อสร้างกราฟเส้น
    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'])