diff --git a/bob/measure/script/common_options.py b/bob/measure/script/common_options.py index 032bd098d752f5057cfbb3c06a034395cbe08c9b..13bc2d0e21ee0d6d5dcb3e144bfe379f5dd1b5a2 100644 --- a/bob/measure/script/common_options.py +++ b/bob/measure/script/common_options.py @@ -375,6 +375,19 @@ def criterion_option(lcriteria=['eer', 'min-hter', 'far'], **kwargs): return custom_criterion_option +def decimal_option(dflt=2, **kwargs): + '''Get option to get decimal value''' + def custom_decimal_option(func): + def callback(ctx, param, value): + ctx.meta['decimal'] = value + return value + return click.option( + '-d', '--decimal', type=click.INT, default=dflt, + help='Number of decimals to be printed.', + callback=callback, show_default=True, **kwargs)(func) + return custom_decimal_option + + def far_option(**kwargs): '''Get option to get far value''' def custom_far_option(func): @@ -589,6 +602,7 @@ def metrics_command(docstring, criteria=('eer', 'min-hter', 'far')): @verbosity_option() @click.pass_context @functools.wraps(func) + @decimal_option() def wrapper(*args, **kwds): return func(*args, **kwds) return wrapper diff --git a/bob/measure/script/figure.py b/bob/measure/script/figure.py index 1ad1a4273ad7ec83ad94243ecd8bc915bc93005d..8116acf5b231587357b2291ecc7d7ff1914e99c0 100644 --- a/bob/measure/script/figure.py +++ b/bob/measure/script/figure.py @@ -219,15 +219,17 @@ class Metrics(MeasureBase): recall, f1_score) def _strings(self, metrics): - fta_str = "%.1f%%" % (100 * metrics[0]) - fmr_str = "%.1f%% (%d/%d)" % (100 * metrics[1], metrics[6], metrics[7]) - fnmr_str = "%.1f%% (%d/%d)" % (100 * metrics[2], metrics[8], metrics[9]) - far_str = "%.1f%%" % (100 * metrics[4]) - frr_str = "%.1f%%" % (100 * metrics[5]) - hter_str = "%.1f%%" % (100 * metrics[3]) - prec_str = "%.1f" % (metrics[10]) - recall_str = "%.1f" % (metrics[11]) - f1_str = "%.1f" % (metrics[12]) + fta_str = "%s%%" % format(100 * metrics[0], '.%df' % self._decimal) + fmr_str = "%s%% (%d/%d)" % (format(100 * metrics[1], '.%df' % self._decimal), + metrics[6], metrics[7]) + fnmr_str = "%s%% (%d/%d)" % (format(100 * metrics[2], '.%df' % self._decimal), + metrics[8], metrics[9]) + far_str = "%s%%" % format(100 * metrics[4], '.%df' % self._decimal) + frr_str = "%s%%" % format(100 * metrics[5], '.%df' % self._decimal) + hter_str = "%s%%" % format(100 * metrics[3], '.%df' % self._decimal) + prec_str = "%s" % format(metrics[10], '.%df' % self._decimal) + recall_str = "%s" % format(metrics[11], '.%df' % self._decimal) + f1_str = "%s" % format(metrics[12], '.%df' % self._decimal) return (fta_str, fmr_str, fnmr_str, far_str, frr_str, hter_str, prec_str, recall_str, f1_str)