2525from wqf .val .metrics import MAPD
2626from wqf .val .metrics import R2
2727from wqf .val .metrics import RMSE
28+ from wqf .val .metrics import RMSLE
2829from wqf .val .metrics import WRMSSE
2930from wqf .val .period import Period
3031from wqf .val .pvp import plot_bias_scene
3132from wqf .val .pvp import plot_bias_time_series
3233from wqf .val .pvp import plot_count_scene
34+ from wqf .val .pvp import plot_count_time_series
3335from wqf .val .pvp import plot_determination_coefficient_scene
3436from wqf .val .pvp import plot_determination_coefficient_time_series
3537from wqf .val .pvp import plot_error_density
4446from wqf .val .pvp import plot_relative_error_scatter
4547from wqf .val .pvp import plot_rmse_scene
4648from wqf .val .pvp import plot_rmse_time_series
49+ from wqf .val .pvp import plot_rmsle_scene
50+ from wqf .val .pvp import plot_rmsle_time_series
4751from wqf .val .pvp import plot_value_density
4852from wqf .val .pvp import plot_value_scatter
4953from wqf .val .pvp import plot_wrmsse_scene
@@ -74,7 +78,7 @@ def plot_bias_diagrams(
7478 value = Count ().value (ref , pre )
7579 print (f"Count ............. ({ method } ) { period } : { value } " , flush = True )
7680
77- title = f" { method } forecast { period } "
81+ title = _title ( method , period )
7882 plot_bias_time_series (
7983 Bias ().series (ref , pre ),
8084 title ,
@@ -96,13 +100,31 @@ def plot_bias_diagrams(
96100 title ,
97101 f"rer_{ method } _hist_{ period .str ('_' )} " ,
98102 ).clear ()
103+ # noinspection PyTypeChecker
104+ plot_count_time_series (
105+ Count ().series (ref , pre ) / 1000.0 ,
106+ title ,
107+ f"count_{ method } _series_{ period .str ('_' )} " ,
108+ xlim = period .lim ,
109+ ).clear ()
99110 plot_count_scene (
100111 Count ().image (ref , pre ),
101112 title ,
102113 f"count_{ method } _image_{ period .str ('_' )} " ,
103114 ).clear ()
104115
105116
117+ def _title (method : str , period : Period ) -> str :
118+ method = method .split (":" )
119+ if len (method ) == 2 :
120+ title = f"{ method [0 ]} forecast { period } [{ method [1 ]} ]"
121+ else :
122+ title = f"{ method [0 ]} forecast { period } "
123+ if title .startswith ("XGB" ):
124+ title = f"{ title [3 :4 ]} -day { title [5 :]} "
125+ return title
126+
127+
106128def plot_det_coefficient_diagrams (
107129 ref : DataArray , pre : DataArray , method : str , period : Period
108130):
@@ -115,7 +137,7 @@ def plot_det_coefficient_diagrams(
115137 flush = True ,
116138 )
117139
118- title = f" { method } forecast { period } "
140+ title = _title ( method , period )
119141 plot_determination_coefficient_time_series (
120142 R2 ().series (ref , pre ),
121143 title ,
@@ -141,7 +163,7 @@ def plot_mad_diagrams(
141163 flush = True ,
142164 )
143165
144- title = f" { method } forecast { period } "
166+ title = _title ( method , period )
145167 plot_mad_time_series (
146168 MAD ().series (ref , pre ),
147169 title ,
@@ -167,7 +189,7 @@ def plot_mapd_diagrams(
167189 flush = True ,
168190 )
169191
170- title = f" { method } forecast { period } "
192+ title = _title ( method , period )
171193 plot_mapd_time_series (
172194 MAPD ().series (ref , pre , condition = ref > 1.0 ),
173195 title ,
@@ -193,7 +215,9 @@ def plot_rmse_diagrams(
193215 flush = True ,
194216 )
195217
196- title = f"{ method } forecast { period } "
218+ title = _title (method , period )
219+ if title .startswith ("XGB" ):
220+ title = f"{ title [3 :4 ]} -day { title [4 :]} "
197221 plot_rmse_time_series (
198222 RMSE ().series (ref , pre ),
199223 title ,
@@ -207,27 +231,55 @@ def plot_rmse_diagrams(
207231 ).clear ()
208232
209233
234+ def plot_rmsle_diagrams (
235+ ref : DataArray , pre : DataArray , method : str , period : Period
236+ ):
237+ ref = period .slice (ref )
238+ pre = period .slice (pre )
239+
240+ value = RMSLE ().value (ref , pre )
241+ print (
242+ f"RMSLE ............. ({ method } ) { period } : { value :6.2f} " ,
243+ flush = True ,
244+ )
245+
246+ title = _title (method , period )
247+ if title .startswith ("XGB" ):
248+ title = f"{ title [3 :4 ]} -day { title [4 :]} "
249+ plot_rmsle_time_series (
250+ RMSLE ().series (ref , pre ),
251+ title ,
252+ f"rmsle_{ method } _series_{ period .str ('_' )} " ,
253+ xlim = period .lim ,
254+ ).clear ()
255+ plot_rmsle_scene (
256+ RMSLE ().image (ref , pre ),
257+ title ,
258+ f"rmsle_{ method } _image_{ period .str ('_' )} " ,
259+ ).clear ()
260+
261+
210262def plot_wrmsse_diagrams (
211263 ref : DataArray , pre : DataArray , method : str , period : Period
212264):
213265 ref = period .slice (ref )
214266 pre = period .slice (pre )
215267
216- value = WRMSSE ().value (ref , pre , condition = ref > 1.0 )
268+ value = WRMSSE ().value (ref , pre )
217269 print (
218270 f"WRMSSE ............ ({ method } ) { period } : { value :6.2f} " ,
219271 flush = True ,
220272 )
221273
222- title = f" { method } forecast { period } "
274+ title = _title ( method , period )
223275 plot_wrmsse_time_series (
224- WRMSSE ().series (ref , pre , condition = ref > 1.0 ),
276+ WRMSSE ().series (ref , pre ),
225277 title ,
226278 f"wrmsse_{ method } _series_{ period .str ('_' )} " ,
227279 xlim = period .lim ,
228280 ).clear ()
229281 plot_wrmsse_scene (
230- WRMSSE ().image (ref , pre , condition = ref > 1.0 ),
282+ WRMSSE ().image (ref , pre ),
231283 title ,
232284 f"wrmsse_{ method } _image_{ period .str ('_' )} " ,
233285 ).clear ()
@@ -239,59 +291,63 @@ def plot_density_diagrams(
239291 x = period .slice (ref )
240292 y = period .slice (pre )
241293
294+ title = _title (method , period )
242295 plot_value_density (
243296 (x , y ),
244- f" { method } forecast { period } " ,
297+ title ,
245298 f"val_{ method } _density_{ period .str ('_' )} " ,
246299 ).clear ()
247300 plot_error_density (
248301 (x , y - x ),
249- f" { method } forecast { period } " ,
302+ title ,
250303 f"err_{ method } _density_{ period .str ('_' )} " ,
251304 ).clear ()
252305 plot_relative_error_density (
253306 (x , (y - x ) / x ),
254- f" { method } forecast { period } " ,
307+ title ,
255308 f"rer_{ method } _density_{ period .str ('_' )} " ,
256309 ).clear ()
257310 plot_value_scatter (
258311 (x , y ),
259- f" { method } forecast { period } " ,
312+ title ,
260313 f"val_{ method } _scatter_{ period .str ('_' )} " ,
261314 ).clear ()
262315 plot_error_scatter (
263316 (x , y - x ),
264- f" { method } forecast { period } " ,
317+ title ,
265318 f"err_{ method } _scatter_{ period .str ('_' )} " ,
266319 ).clear ()
267320 plot_relative_error_scatter (
268321 (x , (y - x ) / x ),
269- f" { method } forecast { period } " ,
322+ title ,
270323 f"rer_{ method } _scatter_{ period .str ('_' )} " ,
271324 ).clear ()
272325
273326
274327def plot_diagnostic_diagrams (ref : DataArray , pre : DataArray , method : str ):
275- plot_bias_diagrams (ref , pre , method , Period (2016 , 2019 ))
276- plot_bias_diagrams (ref , pre , method , Period (2020 ))
277-
278- plot_det_coefficient_diagrams (ref , pre , method , Period (2016 , 2019 ))
279- plot_det_coefficient_diagrams (ref , pre , method , Period (2020 ))
280-
281- plot_mad_diagrams (ref , pre , method , Period (2016 , 2019 ))
282- plot_mad_diagrams (ref , pre , method , Period (2020 ))
283-
284- plot_mapd_diagrams (ref , pre , method , Period (2016 , 2019 ))
285- plot_mapd_diagrams (ref , pre , method , Period (2020 ))
286-
287- plot_rmse_diagrams (ref , pre , method , Period (2016 , 2019 ))
288- plot_rmse_diagrams (ref , pre , method , Period (2020 ))
289-
328+ # plot_bias_diagrams(ref, pre, method, Period(2016, 2019))
329+ # plot_bias_diagrams(ref, pre, method, Period(2020))
330+ #
331+ # plot_det_coefficient_diagrams(ref, pre, method, Period(2016, 2019))
332+ # plot_det_coefficient_diagrams(ref, pre, method, Period(2020))
333+ #
334+ # plot_mad_diagrams(ref, pre, method, Period(2016, 2019))
335+ # plot_mad_diagrams(ref, pre, method, Period(2020))
336+ #
337+ # plot_mapd_diagrams(ref, pre, method, Period(2016, 2019))
338+ # plot_mapd_diagrams(ref, pre, method, Period(2020))
339+
340+ # plot_rmse_diagrams(ref, pre, method, Period(2016, 2019))
341+ # plot_rmse_diagrams(ref, pre, method, Period(2020))
342+
343+ # plot_rmsle_diagrams(ref, pre, method, Period(2016, 2019))
344+ # plot_rmsle_diagrams(ref, pre, method, Period(2020))
345+ #
290346 plot_wrmsse_diagrams (ref , pre , method , Period (2016 , 2019 ))
291347 plot_wrmsse_diagrams (ref , pre , method , Period (2020 ))
292348
293- plot_density_diagrams (ref , pre , method , Period (2016 , 2019 ))
294- plot_density_diagrams (ref , pre , method , Period (2020 ))
349+ # plot_density_diagrams(ref, pre, method, Period(2016, 2019))
350+ # plot_density_diagrams(ref, pre, method, Period(2020))
295351
296352
297353def generate_figures (args ):
0 commit comments