From 4440fe52ddd71e1ae0b389e8d69127c0892e6e14 Mon Sep 17 00:00:00 2001 From: Valentin Boettcher Date: Tue, 21 Mar 2023 15:06:27 -0400 Subject: [PATCH] fixup plot error funnel --- bandfit/bandfit.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/bandfit/bandfit.py b/bandfit/bandfit.py index 31e5e39..ed41eed 100644 --- a/bandfit/bandfit.py +++ b/bandfit/bandfit.py @@ -235,11 +235,19 @@ def plot_data_with_bands_and_fit(data, bands, band_fit): plt.plot(smooth_ks_unscaled, upper_band) -def plot_error_funnel(p, σ): - ks = np.linspace(-np.pi, np.pi, 1000) +def plot_error_funnel(p, σ, ks=None): + ks = ks or np.linspace(-np.pi, np.pi, 1000) - params = np.random.multivariate_normal(p, np.diag(σ), 1000) + params = np.random.multivariate_normal(p, np.diag(σ), 2000) + energies = [] for param in params: - plt.plot(ks, energy(ks, *param), color="gray", alpha=0.1) + energies.append(energy(ks, *param)) + # plt.plot(ks, energy(ks, *param), color="gray", alpha=0.1) - plt.plot(ks, energy(ks, *p), linewidth=2) + energies = np.array(energies) + σ_e = np.std(energies, axis=0) + mean = energy(ks, *p) + plt.plot(ks, mean, linewidth=2) + plt.fill_between(ks, mean - σ_e, mean + σ_e, alpha=0.2) + + return mean, mean - σ_e, mean + σ_e