Source code for autofit.non_linear.plot.nest_plotters

import numpy as np
import warnings

from autoconf import conf

from autofit.non_linear.plot.plot_util import (
    skip_in_test_mode,
    log_plot_exception,
    output_figure,
)


[docs] @skip_in_test_mode @log_plot_exception def corner_anesthetic(samples, path=None, filename="corner_anesthetic", format="show", **kwargs): config_dict = conf.instance["visualize"]["plots_settings"]["corner_anesthetic"] from anesthetic.samples import NestedSamples from anesthetic import make_2d_axes import matplotlib.pylab as pylab params = {"font.size": int(config_dict["fontsize"])} pylab.rcParams.update(params) model = samples.model figsize = ( model.total_free_parameters * config_dict["figsize_per_parammeter"], model.total_free_parameters * config_dict["figsize_per_parammeter"], ) nested_samples = NestedSamples( np.asarray(samples.parameter_lists), weights=samples.weight_list, columns=model.parameter_labels_with_superscripts_latex, ) try: from pandas.errors import SettingWithCopyWarning except ImportError: # pandas >= 2.2 removed SettingWithCopyWarning SettingWithCopyWarning = None if SettingWithCopyWarning is not None: warnings.filterwarnings("ignore", category=SettingWithCopyWarning) fig, axes = make_2d_axes( model.parameter_labels_with_superscripts_latex, figsize=figsize, facecolor=config_dict["facecolor"], ) if SettingWithCopyWarning is not None: warnings.filterwarnings("default", category=SettingWithCopyWarning) nested_samples.plot_2d( axes, alpha=config_dict["alpha"], label="posterior", ) axes.iloc[-1, 0].legend( bbox_to_anchor=(len(axes) / 2, len(axes)), loc="lower center", ncols=2, ) output_figure(path=path, filename=filename, format=format)