Source code for piel.experimental.report.plots

import piel

from piel.types import PathTypes
from piel.file_system import return_path
from piel.types.experimental import ExperimentData
from piel.experimental.measurements.data.extract import load_experiment_data_from_directory
from piel.visual.experimental import auto_plot_from_experiment_data


[docs] def create_plots_from_experiment_data( experiment_data: ExperimentData, plot_output_directory: PathTypes = None, experiment_directory: PathTypes = None, parametric: bool = False, erase_plot_output_path: bool = False, **kwargs, ) -> list[list[tuple], PathTypes]: """ This function iterates through all the saved measurement data and generates the corresponding plots for the type of data provided using a method as specified. Returns a list of (Figures,Axes), and a reference list of paths where the image has been saved. """ # First we need to validate an experiment directory does exist. TODO decide if this stays. if experiment_directory is None: try: assert experiment_data.experiment.parent_directory is not None assert experiment_data.experiment.parent_directory.exists() experiment_directory = experiment_data.experiment.parent_directory except Exception as e: print("experiment_directory needs to be specified.") raise e else: experiment_directory = return_path(experiment_directory) print(f"Experiment data will be extracted from: {experiment_directory}") # First we need to validate we have all the configuration required to generate the plots if plot_output_directory is None: if experiment_directory is None: try: assert experiment_data.experiment.parent_directory is not None assert experiment_data.experiment.parent_directory.exists() plot_output_directory = ( experiment_data.experiment.parent_directory / "img" ) except Exception as e: print("plot_output_directory needs to be specified.") raise e else: plot_output_directory = return_path(plot_output_directory) print(f"Plots will be generated at: {plot_output_directory}") if plot_output_directory.exists() and erase_plot_output_path: print( f"Erase Plot Output Path Flag is True, deleting {str(plot_output_directory)}" ) piel.delete_path(plot_output_directory) piel.create_new_directory(plot_output_directory) # Now we need to iterate through each MeasurementData and generate the plot accordingly. plots, plots_paths = auto_plot_from_experiment_data( experiment_data=experiment_data, plot_output_directory=plot_output_directory, parametric=parametric, **kwargs, ) return plots, plots_paths
[docs] def create_plots_from_experiment_directory( experiment_directory: PathTypes, plot_output_directory: PathTypes = None, **kwargs ) -> list[tuple]: """ This function will create the plots from the given experiment directory. It will first extract the `ExperimentData` from the directory and then generate the plots based on that. """ experiment_directory = return_path(experiment_directory) experiment_data = load_experiment_data_from_directory(experiment_directory) plots, plots_paths = create_plots_from_experiment_data( experiment_data=experiment_data, plot_output_directory=plot_output_directory, **kwargs, ) return plots, plots_paths