%23%20%2F%2F%2F%20script%0A%23%20requires-python%20%3D%20%22%3E%3D3.11%22%0A%23%20dependencies%20%3D%20%5B%0A%23%20%20%20%20%20%22yohou%5Bplotting%5D%22%2C%0A%23%20%5D%0A%23%20%2F%2F%2F%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.23.8%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20from%20yohou.datasets%20import%20(%0A%20%20%20%20%20%20%20%20fetch_electricity_demand%2C%0A%20%20%20%20%20%20%20%20fetch_sunspot%2C%0A%20%20%20%20%20%20%20%20fetch_tourism_monthly%2C%0A%20%20%20%20%20%20%20%20fetch_tourism_quarterly%2C%0A%20%20%20%20)%0A%20%20%20%20from%20yohou.plotting%20import%20(%0A%20%20%20%20%20%20%20%20plot_autocorrelation%2C%0A%20%20%20%20%20%20%20%20plot_decomposition%2C%0A%20%20%20%20%20%20%20%20plot_partial_autocorrelation%2C%0A%20%20%20%20%20%20%20%20plot_seasonal_heatmap%2C%0A%20%20%20%20%20%20%20%20plot_seasonality%2C%0A%20%20%20%20%20%20%20%20plot_subseasonality%2C%0A%20%20%20%20)%0A%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20fetch_electricity_demand%2C%0A%20%20%20%20%20%20%20%20fetch_sunspot%2C%0A%20%20%20%20%20%20%20%20fetch_tourism_monthly%2C%0A%20%20%20%20%20%20%20%20fetch_tourism_quarterly%2C%0A%20%20%20%20%20%20%20%20plot_autocorrelation%2C%0A%20%20%20%20%20%20%20%20plot_decomposition%2C%0A%20%20%20%20%20%20%20%20plot_partial_autocorrelation%2C%0A%20%20%20%20%20%20%20%20plot_seasonal_heatmap%2C%0A%20%20%20%20%20%20%20%20plot_seasonality%2C%0A%20%20%20%20%20%20%20%20plot_subseasonality%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Seasonal%20and%20Frequency%20Domain%20Analysis%0A%0A%20%20%20%20In%20this%20notebook%20we%20will%20explore%20seasonal%20overlays%2C%20subseasonal%20structure%2C%0A%20%20%20%20ACF%2FPACF%20correlation%20patterns%2C%20seasonal%20heatmaps%2C%20and%20STL%20decomposition%0A%20%20%20%20across%20monthly%2C%20quarterly%2C%20and%20long-cycle%20datasets.%0A%0A%20%20%20%20%23%23%20Prerequisites%0A%0A%20%20%20%20Basic%20understanding%20of%20seasonality%2C%20autocorrelation%2C%20and%20the%20frequency%20domain.%20Familiarity%20with%20time%20series%20terminology.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Load%20Datasets%0A%0A%20%20%20%20We%20load%20three%20datasets%20using%20%5B%60fetch_tourism_monthly%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.datasets._fetchers.fetch_tourism_monthly%2F)%2C%20%5B%60fetch_tourism_quarterly%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.datasets._fetchers.fetch_tourism_quarterly%2F)%2C%0A%20%20%20%20and%20%5B%60fetch_sunspot%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.datasets._fetchers.fetch_sunspot%2F).%20The%20monthly%20tourism%20data%20provides%20a%20strong%20yearly%20cycle%2C%0A%20%20%20%20the%20quarterly%20data%20demonstrates%20coarser%20granularity%2C%20and%20the%20sunspot%20data%0A%20%20%20%20offers%20a%20long-cycle%20(approximately%2011-year)%20periodic%20signal.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(fetch_sunspot%2C%20fetch_tourism_monthly%2C%20fetch_tourism_quarterly)%3A%0A%20%20%20%20tourism_monthly%20%3D%20(%0A%20%20%20%20%20%20%20%20fetch_tourism_monthly().frame.select(%22time%22%2C%20%22T1__tourists%22).drop_nulls().rename(%7B%22T1__tourists%22%3A%20%22tourists%22%7D)%0A%20%20%20%20)%0A%20%20%20%20sunspots%20%3D%20fetch_sunspot().frame%0A%20%20%20%20tourism_quarterly%20%3D%20fetch_tourism_quarterly().frame%0A%20%20%20%20return%20tourism_monthly%2C%20tourism_quarterly%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%201.%20Seasonal%20Overlay%0A%0A%20%20%20%20%5B%60plot_seasonality%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.plotting.diagnostics.plot_seasonality%2F)%20overlays%20one%20line%20per%20cycle%20on%20the%20same%20seasonal%20axis%20(FPP3%0A%20%20%20%20gg_season%20style).%20Vary%20the%20**seasonality**%2C%20use%20**highlight**%20to%20emphasise%0A%20%20%20%20specific%20years%2C%20and%20pass%20**groups**%20for%20panel%20data.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_seasonality%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_seasonality(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20seasonality%3D%22month%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22Seasonal%20Overlay%20-%20Monthly%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_seasonality%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_seasonality(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20seasonality%3D%22quarter%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22Seasonal%20Overlay%20-%20Quarterly%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_seasonality%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_seasonality(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20seasonality%3D%22month%22%2C%0A%20%20%20%20%20%20%20%20highlight%3D%5B2000%2C%202005%5D%2C%0A%20%20%20%20%20%20%20%20title%3D%22Seasonal%20Overlay%20-%20Highlighting%202000%20and%202005%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_seasonality%2C%20tourism_quarterly)%3A%0A%20%20%20%20plot_seasonality(%0A%20%20%20%20%20%20%20%20tourism_quarterly%2C%0A%20%20%20%20%20%20%20%20seasonality%3D%22quarter%22%2C%0A%20%20%20%20%20%20%20%20groups%3D%5B%22T1%22%2C%20%22T2%22%5D%2C%0A%20%20%20%20%20%20%20%20title%3D%22Seasonal%20Overlay%20-%20Tourism%20Quarterly%20Panel%20(T1%20%26%20T2)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%202.%20Subseries%20Analysis%0A%0A%20%20%20%20%5B%60plot_subseasonality%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.plotting.diagnostics.plot_subseasonality%2F)%20creates%20one%20mini-plot%20per%20season%20category%20(e.g.%20January%0A%20%20%20%20values%20across%20all%20years).%20Use%20**kind**%20to%20control%20the%20visualization%20style%0A%20%20%20%20and%20toggle%20**show_mean**%20for%20a%20horizontal%20reference.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_subseasonality%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_subseasonality(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20seasonality%3D%22month%22%2C%0A%20%20%20%20%20%20%20%20show_mean%3DTrue%2C%0A%20%20%20%20%20%20%20%20title%3D%22Subseries%20-%20Mean%20(default)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_subseasonality%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_subseasonality(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20seasonality%3D%22month%22%2C%0A%20%20%20%20%20%20%20%20kind%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22Subseries%20-%20Per-cycle%20lines%20overlay%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_subseasonality%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_subseasonality(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20seasonality%3D%22quarter%22%2C%0A%20%20%20%20%20%20%20%20kind%3D%22box%22%2C%0A%20%20%20%20%20%20%20%20facet_n_cols%3D2%2C%0A%20%20%20%20%20%20%20%20title%3D%22Subseries%20-%20Box%20(quarterly%2C%202-column%20grid)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_subseasonality%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_subseasonality(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20seasonality%3D%22month%22%2C%0A%20%20%20%20%20%20%20%20kind%3D%22violin%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22Subseries%20-%20Violin%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%203.%20Autocorrelation%0A%0A%20%20%20%20%5B%60plot_autocorrelation%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.plotting.diagnostics.plot_autocorrelation%2F)%20plots%20the%20ACF%20up%20to%20**max_lags**.%20Significant%20seasonal%0A%20%20%20%20peaks%20appear%20at%20multiples%20of%20the%20seasonal%20period%20(lag%2012%2C%2024%2C%2036%20for%20monthly%0A%20%20%20%20data).%20Vary%20**confidence_level**%20and%20toggle%20**show_confidence**.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_autocorrelation%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_autocorrelation(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20max_lags%3D36%2C%0A%20%20%20%20%20%20%20%20title%3D%22ACF%20-%2036%20Lags%20(Default%2095%25%20CI)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_autocorrelation%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_autocorrelation(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20max_lags%3D48%2C%0A%20%20%20%20%20%20%20%20confidence_level%3D0.99%2C%0A%20%20%20%20%20%20%20%20title%3D%22ACF%20-%2048%20Lags%2C%2099%25%20CI%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_autocorrelation%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_autocorrelation(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20max_lags%3D36%2C%0A%20%20%20%20%20%20%20%20show_confidence%3DFalse%2C%0A%20%20%20%20%20%20%20%20title%3D%22ACF%20-%20Bars%20Only%2C%20No%20Confidence%20Bands%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%204.%20Partial%20Autocorrelation%0A%0A%20%20%20%20%5B%60plot_partial_autocorrelation%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.plotting.diagnostics.plot_partial_autocorrelation%2F)%20estimates%20the%20PACF%2C%20removing%20the%20effect%20of%0A%20%20%20%20intermediate%20lags.%20Compare%20**method**%20options%20(%60%22yw%22%60%20vs%20%60%22ols%22%60)%20and%20vary%0A%20%20%20%20**confidence_level**%20to%20assess%20significance.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_partial_autocorrelation%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_partial_autocorrelation(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20max_lags%3D36%2C%0A%20%20%20%20%20%20%20%20title%3D%22PACF%20-%20Yule-Walker%20(Default)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_partial_autocorrelation%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_partial_autocorrelation(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20max_lags%3D36%2C%0A%20%20%20%20%20%20%20%20method%3D%22ols%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22PACF%20-%20OLS%20Method%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_partial_autocorrelation%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_partial_autocorrelation(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20max_lags%3D24%2C%0A%20%20%20%20%20%20%20%20confidence_level%3D0.70%2C%0A%20%20%20%20%20%20%20%20title%3D%22PACF%20-%2024%20Lags%2C%2090%25%20CI%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%205.%20STL%20Decomposition%0A%0A%20%20%20%20%5B%60plot_decomposition%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.plotting.forecasting.plot_decomposition%2F)%20applies%20STL%20(Seasonal%20and%20Trend%20decomposition%20using%20Loess)%0A%20%20%20%20and%20displays%20selected%20**components**.%20By%20default%20all%20five%20panels%20are%20shown%3A%0A%20%20%20%20observed%2C%20trend%2C%20seasonal%2C%20residual%2C%20and%20seasonal-adjusted.%0A%20%20%20%20Pass%20STL%20tuning%20parameters%20directly%20(e.g.%20%60period%60%2C%20%60seasonal_window%60%2C%20%60robust%60).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_decomposition%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_decomposition(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20%5B%22observed%22%2C%20%22trend%22%2C%20%22seasonal%22%2C%20%22residual%22%2C%20%22seasonal_adjusted%22%5D%2C%0A%20%20%20%20%20%20%20%20method%3D%22stl%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22STL%20-%20All%20Components%20(Default)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_decomposition%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_decomposition(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20%5B%22trend%22%2C%20%22seasonal%22%5D%2C%0A%20%20%20%20%20%20%20%20method%3D%22stl%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22STL%20-%20Trend%20and%20Seasonal%20Only%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%206.%20STL%20Parameter%20Tuning%0A%0A%20%20%20%20Control%20the%20decomposition%20by%20setting%20**robust**%20(outlier%20resistance)%2C%0A%20%20%20%20explicit%20**period**%2C%20and%20**seasonal_window**%20size%20as%20flat%20parameters.%0A%20%20%20%20Comparing%20robust%20vs%20non-robust%20helps%20gauge%20the%20impact%20of%20outliers%20on%0A%20%20%20%20the%20trend%20estimate.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_decomposition%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_decomposition(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20%5B%22observed%22%2C%20%22trend%22%2C%20%22seasonal%22%2C%20%22residual%22%2C%20%22seasonal_adjusted%22%5D%2C%0A%20%20%20%20%20%20%20%20method%3D%22stl%22%2C%0A%20%20%20%20%20%20%20%20robust%3DFalse%2C%0A%20%20%20%20%20%20%20%20title%3D%22STL%20-%20Non-Robust%20Estimation%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_decomposition%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_decomposition(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20%5B%22observed%22%2C%20%22trend%22%2C%20%22seasonal%22%2C%20%22residual%22%2C%20%22seasonal_adjusted%22%5D%2C%0A%20%20%20%20%20%20%20%20method%3D%22stl%22%2C%0A%20%20%20%20%20%20%20%20period%3D12%2C%0A%20%20%20%20%20%20%20%20seasonal_window%3D15%2C%0A%20%20%20%20%20%20%20%20title%3D%22STL%20-%20Explicit%20Period%3D12%2C%20Seasonal%20Window%3D15%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_decomposition%2C%20tourism_monthly)%3A%0A%20%20%20%20plot_decomposition(%0A%20%20%20%20%20%20%20%20tourism_monthly%2C%0A%20%20%20%20%20%20%20%20%5B%22residual%22%5D%2C%0A%20%20%20%20%20%20%20%20method%3D%22stl%22%2C%0A%20%20%20%20%20%20%20%20robust%3DTrue%2C%0A%20%20%20%20%20%20%20%20title%3D%22STL%20-%20Residual%20Only%20(Robust)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%207.%20Seasonal%20Heatmap%0A%0A%20%20%20%20%5B%60plot_seasonal_heatmap%60%5D(%2Fpages%2Fapi%2Fgenerated%2Fyohou.plotting.diagnostics.plot_seasonal_heatmap%2F)%20aggregates%20values%20onto%20a%202-D%20grid%0A%20%20%20%20of%20two%20temporal%20periods.%20Vary%20**x_period**%2C%20**y_period**%2C%20and%20**agg**%20to%0A%20%20%20%20reveal%20different%20seasonal%20structures.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(fetch_electricity_demand)%3A%0A%20%20%20%20_elec%20%3D%20fetch_electricity_demand().frame.head(8760)%0A%20%20%20%20elec_heatmap%20%3D%20_elec.select(%22time%22%2C%20_elec.columns%5B1%5D)%0A%20%20%20%20return%20(elec_heatmap%2C)%0A%0A%0A%40app.cell%0Adef%20_(elec_heatmap%2C%20plot_seasonal_heatmap)%3A%0A%20%20%20%20plot_seasonal_heatmap(%0A%20%20%20%20%20%20%20%20elec_heatmap%2C%0A%20%20%20%20%20%20%20%20x_period%3D%22hour%22%2C%0A%20%20%20%20%20%20%20%20y_period%3D%22month%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22Seasonal%20Heatmap%20-%20Hour%20x%20Month%20(Mean)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(elec_heatmap%2C%20plot_seasonal_heatmap)%3A%0A%20%20%20%20plot_seasonal_heatmap(%0A%20%20%20%20%20%20%20%20elec_heatmap%2C%0A%20%20%20%20%20%20%20%20x_period%3D%22hour%22%2C%0A%20%20%20%20%20%20%20%20y_period%3D%22day_of_week%22%2C%0A%20%20%20%20%20%20%20%20title%3D%22Seasonal%20Heatmap%20-%20Hour%20x%20Day%20of%20Week%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(elec_heatmap%2C%20plot_seasonal_heatmap)%3A%0A%20%20%20%20plot_seasonal_heatmap(%0A%20%20%20%20%20%20%20%20elec_heatmap%2C%0A%20%20%20%20%20%20%20%20x_period%3D%22hour%22%2C%0A%20%20%20%20%20%20%20%20y_period%3D%22month%22%2C%0A%20%20%20%20%20%20%20%20agg%3D%22max%22%2C%0A%20%20%20%20%20%20%20%20colorscale%3D%22Hot%22%2C%0A%20%20%20%20%20%20%20%20reverse_y%3DTrue%2C%0A%20%20%20%20%20%20%20%20title%3D%22Seasonal%20Heatmap%20-%20Max%2C%20Hot%20Colorscale%2C%20Reversed%20Y%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Next%20Steps%0A%0A%20%20%20%20-%20%5BSeasonal%20Analysis%5D(%2Fpages%2Ftutorials%2Fseasonal-analysis%2F)%20for%20the%20full%20guide%0A%20%20%20%20-%20%5BVisualize%20Forecasts%5D(%2Fpages%2Fhow-to%2Fvisualize-forecasts%2F)%20for%20related%20techniques%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
de25274cdbf84a8629c8a5f1c4f15c3e