File size: 2,655 Bytes
77d4332
8dcbf36
776a051
aca1203
1c9ee4f
6399810
f7443b0
4fdaccf
ecd5dc3
6399810
44ccab3
9dbbffa
 
1c9ee4f
ec1dfa8
512c996
5aa6db0
 
6399810
00e2973
fe9e9e8
512c996
ec1dfa8
 
d3b66db
 
 
ec1dfa8
 
b9bf4a7
ec1dfa8
be592c7
bd290be
 
 
 
 
 
0725516
 
 
d3b66db
 
 
 
 
0725516
776a051
b9bf4a7
52d66f1
776a051
a291e9a
776a051
 
a291e9a
 
cc59a5c
a291e9a
 
 
b13adf1
dc4d216
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
62
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'])
#5555555