def METHOD_NAME(self, show_figure_on_screen=True, save_path=None):
    print(len(self.results))
    for idx, result in enumerate(self.results):
        (measurement_distances, fluence_measurements, diffusion_approx) = result
        fig, ax = plt.subplots()
        ax.scatter(measurement_distances, fluence_measurements, marker="o", c="r", label="Simulation")
        ax.plot(measurement_distances, diffusion_approx, label="Diffusion Approx.")
        ax.fill_between(measurement_distances,
                        diffusion_approx - 0.5 * diffusion_approx,
                        diffusion_approx + 0.5 * diffusion_approx,
                        alpha=0.2, label="Accepted Error Range")
        handles, labels = ax.get_legend_handles_labels()
        handles = [handles[0], handles[2], handles[1]]
        labels = [labels[0], labels[2], labels[1]]
        ax.set_yscale("log")
        plt.legend(handles, labels)
        plt.tight_layout()
        if show_figure_on_screen:
            plt.show()
        else:
            if save_path is None:
                save_path = ""
            plt.savefig(save_path + f"diffusion_theory_{idx}.png")
        plt.close()