def scan_plot_energy( scan_dir: Union[Path, str], propagation: str = "propagate", extensions: List[str] = [".png"], **kwargs, ): scan_dir = make_path(scan_dir) plotting_args = PlotArgs2D.from_dict(kwargs) selection = load_scan(scan_dir) def plot_func(index, path, parameters): del path del parameters time, _, energy, _ = read_output_hdf5( scan_dir / "by_index" / str(index) / propagation / "propagate.h5", "output", ) fig, axis = plt.subplots(1, 1) plot_energy(axis, time, energy) return fig, [axis] yield doit_plot_individual( selection, "energy", [str(Path(propagation) / "propagate.h5")], plot_func, plotting_args, extensions, decorator_funcs=kwargs.get("decorator_funcs", []), )
def scan_plot_gpop( scan_dir: Union[Path, str], propagation: str = "propagate", dof: int = 1, extensions: List[str] = [ ".png", ], **kwargs, ): scan_dir = make_path(scan_dir) plot_name = kwargs.get("plot_name", f"gpop_{dof}") plotting_args = PlotArgs2D.from_dict(kwargs) plotting_args.grid = kwargs.get("grid", False) selection = load_scan(scan_dir) def plot_func(index, path, parameters): del path del parameters time, grid, density = read_gpop( str(scan_dir / "by_index" / str(index) / propagation / "propagate.h5") + "/gpop", dof=dof, ) fig, axis = plt.subplots(1, 1) plot_gpop(axis, time, grid, density) return fig, [axis] yield doit_plot_individual( selection, plot_name, [str(Path(propagation) / "propagate.h5")], plot_func, plotting_args, extensions, decorator_funcs=kwargs.get("decorator_funcs", []), )
def scan_plot_entropy( scan_dir: Union[Path, str], propagation: str = "propagate", node: int = 1, dof: int = 1, extensions: List[str] = [ ".png", ], **kwargs, ): scan_dir = make_path(scan_dir) plotting_args = PlotArgs2D.from_dict(kwargs) selection = load_scan(scan_dir) def plot_func(index, path, parameters): del path del parameters data = read_natpop( str(scan_dir / "by_index" / str(index) / propagation / "propagate.h5") + "/natpop", node=node, dof=dof, ) entropy = compute_entropy(data[1]) fig, axis = plt.subplots(1, 1) plot_entropy(axis, data[0], entropy) return fig, [axis] return doit_plot_individual( selection, "entropy", [str(Path(propagation) / "propagate.h5")], plot_func, plotting_args, extensions, decorator_funcs=kwargs.get("decorator_funcs", []), )
def scan_plot_expval( scan_dir: Union[Path, str], expval: Union[Path, str], extensions: List[str] = [ ".png", ], **kwargs, ): scan_dir = make_path(scan_dir) expval = make_path(expval) kwargs["coefficient"] = kwargs.get("coefficient", 1.0) plotting_args = PlotArgs2D.from_dict(kwargs) selection = load_scan(scan_dir) def plot_func(index, path, parameters): del path del parameters data = read_expval_hdf5( str((scan_dir / "by_index" / str(index) / expval).with_suffix(".exp.h5")), ) fig, axis = plt.subplots(1, 1) plot_expval(axis, *data, **kwargs) return fig, [axis] return doit_plot_individual( selection, f"expval_{str(expval)}".replace("/", "_"), [str(expval.with_suffix(".exp.h5"))], plot_func, plotting_args, extensions, decorator_funcs=kwargs.get("decorator_funcs", []), extra_args={"coefficient": kwargs["coefficient"]}, )