Loading scripts/create_histograms.py +21 −3 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ import matplotlib.pyplot as plt from typing import List BINS_4_COLS = { BINS_FOR_MEASURES = { "MLD": [0, 1, 2, 3, 4, 5, 10, 20, math.inf], "MAX_ABS_DIFF": [0, 16, 256, 1024, 2048, 4096, 8192, 16384, 32769], "MIN_SSNR": [-math.inf, 0, 10, 20, 30, 40, 40, 50, 60, 100], Loading @@ -20,11 +20,16 @@ BINS_4_COLS = { MEASURES_TO_PLOT = ["MAX_ABS_DIFF", "MLD", "MIN_SSNR", "MIN_ODG"] def get_bins_for_diff(data: pd.Series): return np.linspace(data.min(), data.max(), num=10) def create_histograms( df: pd.DataFrame, measures: List[str], output_folder: pathlib.Path, display_only: bool, bins_for_measures=BINS_FOR_MEASURES, ): formats = df["format"].unique() categories = df["category"].unique() Loading @@ -33,10 +38,11 @@ def create_histograms( output_folder.mkdir(exist_ok=True, parents=True) for measure in measures: bins = BINS_4_COLS[measure] bins = bins_for_measures.get(measure, get_bins_for_diff(df[measure])) x = [f"{x}" for x in bins] + ["", "ERROR"] for fmt in formats: fig, ax = plt.subplots() ax.xaxis.set_major_formatter("{x:.1f}") bottom = np.zeros(len(x)) for cat in categories: data_mask = np.logical_and(df["format"] == fmt, df["category"] == cat) Loading Loading @@ -98,9 +104,21 @@ if __name__ == "__main__": action="store_true", help="Do not write the output files, but display the graphs instead.", ) parser.add_argument( "--no-bins", action="store_true", help="""Do not use the hardcoded bins for creating the spectrograms. Use this for visualising diff scores.""", ) args = parser.parse_args() df = pd.read_csv(args.csv_report) measures = MEASURES_TO_PLOT create_histograms(df, measures, args.output_folder, args.display_only) bins_for_measures = BINS_FOR_MEASURES if args.no_bins: bins_for_measures = {} create_histograms( df, measures, args.output_folder, args.display_only, bins_for_measures ) Loading
scripts/create_histograms.py +21 −3 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ import matplotlib.pyplot as plt from typing import List BINS_4_COLS = { BINS_FOR_MEASURES = { "MLD": [0, 1, 2, 3, 4, 5, 10, 20, math.inf], "MAX_ABS_DIFF": [0, 16, 256, 1024, 2048, 4096, 8192, 16384, 32769], "MIN_SSNR": [-math.inf, 0, 10, 20, 30, 40, 40, 50, 60, 100], Loading @@ -20,11 +20,16 @@ BINS_4_COLS = { MEASURES_TO_PLOT = ["MAX_ABS_DIFF", "MLD", "MIN_SSNR", "MIN_ODG"] def get_bins_for_diff(data: pd.Series): return np.linspace(data.min(), data.max(), num=10) def create_histograms( df: pd.DataFrame, measures: List[str], output_folder: pathlib.Path, display_only: bool, bins_for_measures=BINS_FOR_MEASURES, ): formats = df["format"].unique() categories = df["category"].unique() Loading @@ -33,10 +38,11 @@ def create_histograms( output_folder.mkdir(exist_ok=True, parents=True) for measure in measures: bins = BINS_4_COLS[measure] bins = bins_for_measures.get(measure, get_bins_for_diff(df[measure])) x = [f"{x}" for x in bins] + ["", "ERROR"] for fmt in formats: fig, ax = plt.subplots() ax.xaxis.set_major_formatter("{x:.1f}") bottom = np.zeros(len(x)) for cat in categories: data_mask = np.logical_and(df["format"] == fmt, df["category"] == cat) Loading Loading @@ -98,9 +104,21 @@ if __name__ == "__main__": action="store_true", help="Do not write the output files, but display the graphs instead.", ) parser.add_argument( "--no-bins", action="store_true", help="""Do not use the hardcoded bins for creating the spectrograms. Use this for visualising diff scores.""", ) args = parser.parse_args() df = pd.read_csv(args.csv_report) measures = MEASURES_TO_PLOT create_histograms(df, measures, args.output_folder, args.display_only) bins_for_measures = BINS_FOR_MEASURES if args.no_bins: bins_for_measures = {} create_histograms( df, measures, args.output_folder, args.display_only, bins_for_measures )