diff --git a/bilby/core/result.py b/bilby/core/result.py index 5a9963cf91dac47bf3b8db47653edd692bf1887a..be24cf1f78294c8b179dca37f4877a42b0bb46bc 100644 --- a/bilby/core/result.py +++ b/bilby/core/result.py @@ -532,36 +532,45 @@ class Result(object): """ if isinstance(parameters, dict): plot_parameter_keys = list(parameters.keys()) - truths = list(parameters.values()) + truths = parameters elif parameters is None: - plot_parameter_keys = self.injection_parameters.keys() - truths = [self.injection_parameters.get(key, None) for key - in plot_parameter_keys] + plot_parameter_keys = self.posterior.keys() + if self.injection_parameters is None: + truths = dict() + else: + truths = self.injection_parameters else: plot_parameter_keys = list(parameters) - truths = [self.injection_parameters.get(key, None) for key - in plot_parameter_keys] + if self.injection_parameters is None: + truths = dict() + else: + truths = self.injection_parameters if file_base_name is None: file_base_name = '{}/{}_1d/'.format(self.outdir, self.label) check_directory_exists_and_if_not_mkdir(file_base_name) if priors is True: - priors = getattr(self, 'priors', False) - elif isinstance(priors, dict) or priors in [False, None]: + priors = getattr(self, 'priors', dict()) + elif isinstance(priors, dict): pass + elif priors in [False, None]: + priors = dict() else: raise ValueError('Input priors={} not understood'.format(priors)) for i, key in enumerate(plot_parameter_keys): if not isinstance(self.posterior[key].values[0], float): continue + prior = priors.get(key, None) + truth = truths.get(key, None) for cumulative in [False, True]: - self.plot_single_density( - key, prior=priors[i], cumulative=cumulative, title=titles, - truth=truths[i], save=True, file_base_name=file_base_name, + fig = self.plot_single_density( + key, prior=prior, cumulative=cumulative, title=titles, + truth=truth, save=True, file_base_name=file_base_name, bins=bins, label_fontsize=label_fontsize, dpi=dpi, title_fontsize=title_fontsize, quantiles=quantiles) + plt.close(fig) def plot_corner(self, parameters=None, priors=None, titles=True, save=True, filename=None, dpi=300, **kwargs):