Si la estacionalidad es grande y el espacio es limitado, el grafico horizon pliega las bandas para compactar. La amplitud se expresa con color e intensidad.
importnumpyasnpimportmatplotlib.pyplotaspltx=np.arange(0,48)baseline=120+30*np.sin(2*np.pi*x/12)trend=0.6*xrng=np.random.default_rng(7)series=baseline+trend+rng.normal(0,8,size=x.size)centered=series-series.mean()band=20levels=3palette_pos=["#bae6fd","#38bdf8","#0ea5e9"]palette_neg=["#fecaca","#f87171","#ef4444"]fig,ax=plt.subplots(figsize=(6.2,3.6))forlevelinrange(levels):upper=np.clip(centered-level*band,0,band)ifnp.any(upper>0):ax.fill_between(x,level*band,level*band+upper,color=palette_pos[level],step="mid",)lower=np.clip(-centered-level*band,0,band)ifnp.any(lower>0):ax.fill_between(x,-(level*band+lower),-level*band,color=palette_neg[level],step="mid",)ax.axhline(0,color="#475569",linewidth=1)positions=range(0,48,6)ax.set_xticks(positions,labels=[f"Mes {idx+1}"foridx,_inenumerate(positions)])ax.set_yticks([])ax.set_title("Sesiones semanales (desvio respecto a la base)")ax.set_xlabel("Semana")ax.spines[["top","right","left"]].set_visible(False)fig.tight_layout()plt.show()