rbf_df = GaussianProcessGenerator(
engine="polars", min_length=200, max_length=200, freq="D",
kernel="rbf", length_scale=15.0, seed=42,
).generate(n_series=1)
rough_df = GaussianProcessGenerator(
engine="polars", min_length=200, max_length=200, freq="D",
kernel="matern_0.5", length_scale=15.0, seed=42,
).generate(n_series=1)
smooth_df = GaussianProcessGenerator(
engine="polars", min_length=200, max_length=200, freq="D",
kernel="matern_2.5", length_scale=15.0, seed=42,
).generate(n_series=1)
periodic_df = GaussianProcessGenerator(
engine="polars", min_length=200, max_length=200, freq="D",
kernel="periodic", length_scale=15.0, period=30.0, seed=42,
).generate(n_series=1)
panels = [
("rbf (infinitely smooth)", rbf_df),
("matern_0.5 (rough, OU-like)", rough_df),
("matern_2.5 (twice differentiable)", smooth_df),
("periodic (period=30)", periodic_df),
]
fig, axes = plt.subplots(4, 1, figsize=(12, 9), sharex=True)
for ax, (label, df) in zip(axes, panels):
ax.plot(df["ds"].to_list(), df["y"].to_list(), alpha=0.85, linewidth=1)
ax.set(ylabel="Value", title=label)
axes[-1].set_xlabel("Timestamp")
plt.tight_layout()
plt.show()