From b8f85b138666a88cc27c093b45269bf37f027c5a Mon Sep 17 00:00:00 2001 From: Noe Brucy Date: Sun, 15 Mar 2020 10:25:59 +0100 Subject: [PATCH] Add 68% error bars --- comparator.py | 18 +++++++++++++++--- plotter.py | 3 +++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/comparator.py b/comparator.py index e5610c5..7907f6e 100644 --- a/comparator.py +++ b/comparator.py @@ -144,6 +144,8 @@ class Comparator(Aggregator, HDF5Container): v_max = np.zeros(len(self.runs)) q975 = np.zeros(len(self.runs)) q025 = np.zeros(len(self.runs)) + q16 = np.zeros(len(self.runs)) + q84 = np.zeros(len(self.runs)) for i, run in enumerate(self.runs): serie = self.save.get_node(group + "/" + name + "/" + run).read() @@ -168,9 +170,15 @@ class Comparator(Aggregator, HDF5Container): mean[i] = np.mean(serie[mask], axis=0) std[i] = np.std(serie[mask], axis=0) - v_min[i], q025[i], median[i], q975[i], v_max[i] = np.percentile( - serie[mask], [0, 2.5, 50, 97.5, 100], axis=0 - ) + ( + v_min[i], + q025[i], + q16[i], + median[i], + q84[i], + q975[i], + v_max[i], + ) = np.percentile(serie[mask], [0, 2.5, 16, 50, 84, 97.5, 100], axis=0) return { "runs": self.runs, "mean": mean, @@ -180,6 +188,8 @@ class Comparator(Aggregator, HDF5Container): "max": v_max, "q025": q025, "q975": q975, + "q16": q16, + "q84": q84, } def get_attr(self, attr_name, run, num, node_name="/", arg=None): @@ -390,6 +400,8 @@ class Comparator(Aggregator, HDF5Container): "min": "Minimum of {}".format(descr), "q025": "2.5 percentile of {}".format(descr), "q975": "97.5 percentile of {}".format(descr), + "q16": "16 percentile of {}".format(descr), + "q84": "84 percentile of {}".format(descr), } # units={ diff --git a/plotter.py b/plotter.py index ba6db0b..3452190 100644 --- a/plotter.py +++ b/plotter.py @@ -668,6 +668,9 @@ class Plotter(Aggregator, BaseProcessor): elif yerr_kind == "95per": yerr_min = node_y.q025.read() * yunit_old.express(yunit) yerr_max = node_y.q975.read() * yunit_old.express(yunit) + elif yerr_kind == "68per": + yerr_min = node_y.q16.read() * yunit_old.express(yunit) + yerr_max = node_y.q84.read() * yunit_old.express(yunit) else: yerr_min = y yerr_max = y