Gumball2k5 commited on
Commit
f19f4d4
·
verified ·
1 Parent(s): 44a7578

Update src/diagnostic_plots.py

Browse files
Files changed (1) hide show
  1. src/diagnostic_plots.py +18 -7
src/diagnostic_plots.py CHANGED
@@ -12,7 +12,7 @@ def plot_performance_degradation(df, metric_column, metric_name, color='blue'):
12
 
13
  Args:
14
  df (pd.DataFrame): DataFrame được tải từ 'final_5_day_results_df.csv'.
15
- metric_column (str): Tên cột chính xác trong CSV (ví dụ: 'RMSE', 'R2').
16
  metric_name (str): Tên hiển thị đẹp cho trục Y (ví dụ: 'RMSE (Temperature °C)').
17
  color (str): Tên màu cho đường line.
18
 
@@ -20,9 +20,9 @@ def plot_performance_degradation(df, metric_column, metric_name, color='blue'):
20
  plotly.graph_objects.Figure: Một đối tượng biểu đồ Plotly.
21
  """
22
 
23
- # --- TÙY CHỈNH QUAN TRỌNG ---
24
- # Đảm bảo tên cột 'day_ahead' (chứa 1, 2, 3, 4, 5) chính xác
25
- DAY_AHEAD_COLUMN = 'day_ahead'
26
  # ---------------------------
27
 
28
  if DAY_AHEAD_COLUMN not in df.columns:
@@ -34,11 +34,21 @@ def plot_performance_degradation(df, metric_column, metric_name, color='blue'):
34
  f"Vui lòng kiểm tra file `src/diagnostic_plots.py`.")
35
  return go.Figure()
36
 
 
 
 
 
 
 
 
 
 
 
37
  fig = go.Figure()
38
 
39
  fig.add_trace(go.Scatter(
40
- x=df[DAY_AHEAD_COLUMN],
41
- y=df[metric_column],
42
  mode='lines+markers',
43
  name=metric_name,
44
  line=dict(color=color, width=3),
@@ -50,7 +60,8 @@ def plot_performance_degradation(df, metric_column, metric_name, color='blue'):
50
  xaxis_title="Day Ahead (Horizon)",
51
  yaxis_title=metric_name,
52
  title_x=0.5, # Căn giữa tiêu đề
53
- template="plotly_white"
 
54
  )
55
 
56
  # Nếu là R2, đặt giới hạn trục y từ 0 đến 1 cho dễ nhìn
 
12
 
13
  Args:
14
  df (pd.DataFrame): DataFrame được tải từ 'final_5_day_results_df.csv'.
15
+ metric_column (str): Tên cột chính xác trong CSV (ví dụ: 'RMSE (Absolute Error)').
16
  metric_name (str): Tên hiển thị đẹp cho trục Y (ví dụ: 'RMSE (Temperature °C)').
17
  color (str): Tên màu cho đường line.
18
 
 
20
  plotly.graph_objects.Figure: Một đối tượng biểu đồ Plotly.
21
  """
22
 
23
+ # --- TÙY CHỈNH QUAN TRỌNG (ĐÃ SỬA) ---
24
+ # Cột chứa "Day 1", "Day 2",...'Horizon'
25
+ DAY_AHEAD_COLUMN = 'Horizon'
26
  # ---------------------------
27
 
28
  if DAY_AHEAD_COLUMN not in df.columns:
 
34
  f"Vui lòng kiểm tra file `src/diagnostic_plots.py`.")
35
  return go.Figure()
36
 
37
+ # --- SỬA LỖI LOGIC: Chuyển "Day 1" thành số 1 ---
38
+ # Tạo một bản copy để tránh cảnh báo
39
+ plot_df = df.copy()
40
+
41
+ # Trích xuất số từ cột 'Horizon' (ví dụ: 'Day 1' -> 1)
42
+ # và tạo cột mới 'day_num'
43
+ plot_df['day_num'] = plot_df[DAY_AHEAD_COLUMN].str.extract(r'(\d+)').astype(int)
44
+ plot_df = plot_df.sort_values(by='day_num')
45
+ # ---------------------------------------------
46
+
47
  fig = go.Figure()
48
 
49
  fig.add_trace(go.Scatter(
50
+ x=plot_df['day_num'], # Dùng cột số 'day_num' mới cho trục X
51
+ y=plot_df[metric_column],
52
  mode='lines+markers',
53
  name=metric_name,
54
  line=dict(color=color, width=3),
 
60
  xaxis_title="Day Ahead (Horizon)",
61
  yaxis_title=metric_name,
62
  title_x=0.5, # Căn giữa tiêu đề
63
+ template="plotly_white",
64
+ xaxis = dict(tickmode = 'linear', tick0 = 1, dtick = 1) # Đảm bảo trục X là 1, 2, 3, 4, 5
65
  )
66
 
67
  # Nếu là R2, đặt giới hạn trục y từ 0 đến 1 cho dễ nhìn