From b23820a60f51abd2baf9792777ae0cf9de9d61c7 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 12:34:23 +0500 Subject: [PATCH 01/12] Added Extension.HTML --- src/python/review/common/file_system.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/python/review/common/file_system.py b/src/python/review/common/file_system.py index 952eed1a..9800d2ce 100644 --- a/src/python/review/common/file_system.py +++ b/src/python/review/common/file_system.py @@ -38,6 +38,7 @@ class Extension(Enum): CSV = '.csv' PICKLE = '.pickle' JSON = '.json' + HTML = '.html' # Image extensions PNG = '.png' From 44cac83fce2ed08e3eac44197a097b856d9f6cd1 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 12:34:37 +0500 Subject: [PATCH 02/12] Added COLORWAY --- .../evaluation/plots/common/plotly_consts.py | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/python/evaluation/plots/common/plotly_consts.py b/src/python/evaluation/plots/common/plotly_consts.py index fc4f703a..821906b9 100644 --- a/src/python/evaluation/plots/common/plotly_consts.py +++ b/src/python/evaluation/plots/common/plotly_consts.py @@ -1,5 +1,7 @@ from enum import Enum +import plotly.express as px + class MARGIN(Enum): ZERO = {'l': 0, 'r': 0, 'b': 0, 't': 0} @@ -13,7 +15,10 @@ class SORT_ORDER(Enum): # noqa: N801 class COLOR(Enum): - # Colors from px.colors.DEFAULT_PLOTLY_COLORS + """ + Colors from px.colors.DEFAULT_PLOTLY_COLORS + """ + BLUE = "rgb(31, 119, 180)" ORANGE = "rgb(255, 127, 14)" GREEN = "rgb(44, 160, 44)" @@ -24,3 +29,29 @@ class COLOR(Enum): GRAY = "rgb(127, 127, 127)" YELLOW = "rgb(188, 189, 34)" CYAN = "rgb(23, 190, 207)" + + +class COLORWAY(Enum): # noqa: N801 + """ + Colors from px.colors.qualitative + """ + + PLOTLY = px.colors.qualitative.Plotly + D3 = px.colors.qualitative.D3 + G10 = px.colors.qualitative.G10 + T10 = px.colors.qualitative.T10 + ALPHABET = px.colors.qualitative.Alphabet + DARK24 = px.colors.qualitative.Dark24 + LIGHT24 = px.colors.qualitative.Light24 + SET1 = px.colors.qualitative.Set1 + PASTEL1 = px.colors.qualitative.Pastel1 + DARK2 = px.colors.qualitative.Dark24 + SET2 = px.colors.qualitative.Set2 + PASTEL2 = px.colors.qualitative.Pastel2 + SET3 = px.colors.qualitative.Set3 + ANTIQUE = px.colors.qualitative.Antique + BOLD = px.colors.qualitative.Bold + PASTEL = px.colors.qualitative.Pastel + PRISM = px.colors.qualitative.Prism + SAFE = px.colors.qualitative.Safe + VIVID = px.colors.qualitative.Vivid From 6ad9c63157fe58ed8731ad648a01ae5ccd2c1277 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 12:34:47 +0500 Subject: [PATCH 03/12] Added new words --- whitelist.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/whitelist.txt b/whitelist.txt index 53cc4701..e1bf1a82 100644 --- a/whitelist.txt +++ b/whitelist.txt @@ -207,3 +207,14 @@ xpath yanchor yaxes yaxis +D3 +G10 +T10 +DARK2 +DARK24 +SET2 +SET3 +PASTEL2 +LIGHT24 +SET1 +textangle \ No newline at end of file From 717818b9c9278a52c4dcaf538acbd9bd5be669f5 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 12:41:21 +0500 Subject: [PATCH 04/12] Added create_box_trace and create_scatter_trace --- src/python/evaluation/plots/common/utils.py | 106 +++++++++++++++----- 1 file changed, 79 insertions(+), 27 deletions(-) diff --git a/src/python/evaluation/plots/common/utils.py b/src/python/evaluation/plots/common/utils.py index 5c14d07c..64be49b5 100644 --- a/src/python/evaluation/plots/common/utils.py +++ b/src/python/evaluation/plots/common/utils.py @@ -8,10 +8,17 @@ from src.python.evaluation.plots.common import plotly_consts from src.python.review.common.file_system import Extension +COLOR = Optional[plotly_consts.COLOR] +COLORWAY = Optional[plotly_consts.COLORWAY] +MARGIN = Optional[plotly_consts.MARGIN] +SORT_ORDER = Optional[plotly_consts.SORT_ORDER] +LINES = Optional[Dict[int, Optional[str]]] + def get_supported_extensions() -> List[str]: extensions = Extension.get_image_extensions() extensions.append(Extension.JSON) + extensions.append(Extension.HTML) return [extension.value for extension in extensions] @@ -19,39 +26,72 @@ def create_bar_plot( df: pd.DataFrame, x_axis: str, y_axis: str, - margin: Optional[plotly_consts.MARGIN] = None, - sort_order: Optional[plotly_consts.SORT_ORDER] = None, - color: Optional[plotly_consts.COLOR] = None, + margin: MARGIN = None, + sort_order: SORT_ORDER = None, + color: COLOR = None, ) -> go.Figure: fig = px.bar(df, x=x_axis, y=y_axis, text=y_axis) update_figure(fig, margin, sort_order, color) return fig +def create_box_trace( + df: pd.DataFrame, + x_column: Optional[str] = None, + y_column: Optional[str] = None, + color: COLOR = None, +) -> go.Box: + return go.Box( + x=df[x_column] if x_column is not None else None, + y=df[y_column] if y_column is not None else None, + line={'color': color.value if color is not None else None}, + ) + + def create_box_plot( df: pd.DataFrame, - x_axis: str, - y_axis: str, - margin: Optional[plotly_consts.MARGIN] = None, - sort_order: Optional[plotly_consts.SORT_ORDER] = None, - color: Optional[plotly_consts.COLOR] = None, - horizontal_lines: Optional[Dict[int, Optional[str]]] = None, + x_axis: Optional[str], + y_axis: Optional[str], + margin: MARGIN = None, + sort_order: SORT_ORDER = None, + color: COLOR = None, + horizontal_lines: LINES = None, ) -> go.Figure: - fig = px.box(df, x=x_axis, y=y_axis) - update_figure(fig, margin=margin, sort_order=sort_order, color=color, horizontal_lines=horizontal_lines) + fig = go.Figure(create_box_trace(df, x_axis, y_axis, color)) + update_figure( + fig, + margin=margin, + sort_order=sort_order, + horizontal_lines=horizontal_lines, + x_axis_name=x_axis, + y_axis_name=y_axis, + ) return fig +def create_scatter_trace( + df: pd.DataFrame, + x_column: str, + y_column: str, + color: COLOR = None, +) -> go.Scatter: + return go.Scatter( + x=df[x_column], + y=df[y_column], + line={'color': color.value if color is not None else None}, + ) + + def create_line_chart( df: pd.DataFrame, x_axis: str, y_axis: str, - margin: Optional[plotly_consts.MARGIN] = None, - color: Optional[plotly_consts.COLOR] = None, - vertical_lines: Optional[Dict[int, Optional[str]]] = None, + margin: MARGIN = None, + color: COLOR = None, + vertical_lines: LINES = None, ) -> go.Figure: - fig = px.line(df, x=x_axis, y=y_axis) - update_figure(fig, margin=margin, color=color, vertical_lines=vertical_lines) + fig = go.Figure(create_scatter_trace(df, x_axis, y_axis, color)) + update_figure(fig, margin=margin, vertical_lines=vertical_lines) return fig @@ -60,24 +100,30 @@ def create_histogram( x_axis: str, y_axis: str, n_bins: Optional[int] = None, - margin: Optional[plotly_consts.MARGIN] = None, - color: Optional[plotly_consts.COLOR] = None, - vertical_lines: Optional[Dict[int, Optional[str]]] = None, + margin: MARGIN = None, + color: COLOR = None, + vertical_lines: LINES = None, ) -> go.Figure: fig = px.histogram(df, x=x_axis, y=y_axis, nbins=n_bins) update_figure( - fig, margin=margin, color=color, vertical_lines=vertical_lines, x_axis_name=x_axis, y_axis_name=y_axis, + fig, + margin=margin, + color=color, + vertical_lines=vertical_lines, + x_axis_name=x_axis, + y_axis_name=y_axis, ) return fig def update_figure( fig: go.Figure, - margin: Optional[plotly_consts.MARGIN] = None, - sort_order: Optional[plotly_consts.SORT_ORDER] = None, - color: Optional[plotly_consts.COLOR] = None, - horizontal_lines: Optional[Dict[int, Optional[str]]] = None, - vertical_lines: Optional[Dict[int, Optional[str]]] = None, + margin: MARGIN = None, + sort_order: SORT_ORDER = None, + color: COLOR = None, + colorway: COLORWAY = None, + horizontal_lines: LINES = None, + vertical_lines: LINES = None, x_axis_name: Optional[str] = None, y_axis_name: Optional[str] = None, ) -> None: @@ -95,6 +141,9 @@ def update_figure( if y_axis_name is not None: new_layout['yaxis_title'] = y_axis_name + if colorway is not None: + new_layout['colorway'] = colorway.value + fig.update_layout(**new_layout) new_trace = {} @@ -110,7 +159,7 @@ def update_figure( if vertical_lines is not None: for x, annotation in vertical_lines.items(): - fig.add_vline(x=x, annotation_text=annotation) + fig.add_vline(x=x, annotation_text=annotation, annotation_textangle=90) def save_plot( @@ -121,4 +170,7 @@ def save_plot( ) -> None: os.makedirs(dir_path, exist_ok=True) file = dir_path / f"{plot_name}{extension.value}" - fig.write_image(str(file)) + if extension == Extension.HTML: + fig.write_html(str(file)) + else: + fig.write_image(str(file)) From 9e4a15790b18a4ffaa78eb3d96c83fbf16ef1e31 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 12:42:02 +0500 Subject: [PATCH 05/12] Added --group-stats and colorway --- .../plots/raw_issues_statistics_plotter.py | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/src/python/evaluation/plots/raw_issues_statistics_plotter.py b/src/python/evaluation/plots/raw_issues_statistics_plotter.py index 02888080..e3896621 100644 --- a/src/python/evaluation/plots/raw_issues_statistics_plotter.py +++ b/src/python/evaluation/plots/raw_issues_statistics_plotter.py @@ -6,7 +6,7 @@ sys.path.append('../../../..') -import pandas as pd +import plotly.graph_objects as go from src.python.evaluation.common.pandas_util import get_solutions_df_by_file_path from src.python.evaluation.plots.common import plotly_consts from src.python.evaluation.plots.common.utils import ( @@ -23,8 +23,10 @@ class ConfigFields(Enum): Y_AXIS_NAME = 'y_axis_name' MARGIN = 'margin' COLOR = 'color' + COLORWAY = 'colorway' BOUNDARIES = 'boundaries' COMMON = 'common' + STATS = 'stats' RANGE_OF_VALUES = 'range_of_values' N_BINS = 'n_bins' @@ -33,17 +35,19 @@ class ConfigFields(Enum): Y_AXIS_NAME = ConfigFields.Y_AXIS_NAME.value MARGIN = ConfigFields.MARGIN.value COLOR = ConfigFields.COLOR.value +COLORWAY = ConfigFields.COLORWAY.value BOUNDARIES = ConfigFields.BOUNDARIES.value COMMON = ConfigFields.COMMON.value +STATS = ConfigFields.STATS.value RANGE_OF_VALUES = ConfigFields.RANGE_OF_VALUES.value N_BINS = ConfigFields.N_BINS.value def configure_arguments(parser: argparse.ArgumentParser) -> None: parser.add_argument( - 'stats', + 'config_path', type=lambda value: Path(value).absolute(), - help='Path to dataset with statistics.', + help='Path to the yaml file containing information about the graphs to be plotted.', ) parser.add_argument( @@ -52,12 +56,6 @@ def configure_arguments(parser: argparse.ArgumentParser) -> None: help='The directory where the plotted charts will be saved.', ) - parser.add_argument( - 'config_path', - type=lambda value: Path(value).absolute(), - help='Path to the yaml file containing information about the graphs to be plotted.', - ) - parser.add_argument( '--file-extension', type=str, @@ -66,6 +64,12 @@ def configure_arguments(parser: argparse.ArgumentParser) -> None: help='Allows you to select the extension of output files.', ) + parser.add_argument( + '--group-stats', + action='store_true', + help='If present, there will be several languages on the charts at once.', + ) + def _get_plot_config( column_name: str, @@ -92,6 +96,10 @@ def _get_plot_config( if RANGE_OF_VALUES in params: params[RANGE_OF_VALUES] = range(*params[RANGE_OF_VALUES]) + if COLORWAY in params: + colorway_value = params.get(COLORWAY).upper() + params[COLORWAY] = plotly_consts.COLORWAY[colorway_value] + return PlotConfig(**params) @@ -105,14 +113,23 @@ def get_plot_configs(column_name: str, column_config: Dict) -> List[PlotConfig]: return plot_configs -def plot_and_save(config: Dict, stats: pd.DataFrame, save_dir: Path, extension: Extension) -> None: +def _save_plots(plots: Dict[str, go.Figure], save_dir: Path, extension: Extension, column: str, plot_type: str) -> None: + for output_name, plot in plots.items(): + subdir = save_dir / column + save_plot(plot, subdir, plot_name=f'{column}_{plot_type}_{output_name}', extension=extension) + + +def plot_and_save(config: Dict, save_dir: Path, extension: Extension, group_stats: bool) -> None: + stats_by_lang = { + lang: get_solutions_df_by_file_path(Path(lang_stats)) for lang, lang_stats in config.pop(STATS).items() + } + for column_name, column_config in config.items(): plot_configs = get_plot_configs(column_name, column_config) for plot_config in plot_configs: plotter_function = plot_config.type.to_plotter_function() - plot = plotter_function(stats, plot_config) - subdir = save_dir / plot_config.column - save_plot(plot, subdir, plot_name=f'{plot_config.column}_{plot_config.type.value}', extension=extension) + plots = plotter_function(stats_by_lang, plot_config, group_stats) + _save_plots(plots, save_dir, extension, plot_config.column, plot_config.type.value) def main(): @@ -120,12 +137,10 @@ def main(): configure_arguments(parser) args = parser.parse_args() - stats = get_solutions_df_by_file_path(args.stats) - extension = Extension(args.file_extension) config = parse_yaml(args.config_path) - plot_and_save(config, stats, args.save_dir, extension) + plot_and_save(config, args.save_dir, extension, args.group_stats) if __name__ == "__main__": From 16a8ebf7605a2ab355104a73e3e32c2e22a6aa00 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 12:49:26 +0500 Subject: [PATCH 06/12] Added the ability to show several languages on one graph at once --- .../raw_issues_statistics_plotters.py | 168 ++++++++++++++---- 1 file changed, 129 insertions(+), 39 deletions(-) diff --git a/src/python/evaluation/plots/plotters/raw_issues_statistics_plotters.py b/src/python/evaluation/plots/plotters/raw_issues_statistics_plotters.py index c545313d..09fa0df6 100644 --- a/src/python/evaluation/plots/plotters/raw_issues_statistics_plotters.py +++ b/src/python/evaluation/plots/plotters/raw_issues_statistics_plotters.py @@ -1,13 +1,26 @@ +import logging from dataclasses import dataclass from enum import Enum, unique -from typing import Callable, Dict, List, Optional, Tuple +from typing import Callable, Dict, Optional, Tuple import numpy as np import pandas as pd import plotly.graph_objects as go from src.python.evaluation.issues_statistics.get_raw_issues_statistics import VALUE -from src.python.evaluation.plots.common import plotly_consts -from src.python.evaluation.plots.common.utils import create_box_plot, create_histogram, create_line_chart +from src.python.evaluation.plots.common.utils import ( + COLOR, + COLORWAY, + create_box_plot, + create_box_trace, + create_histogram, + create_line_chart, + create_scatter_trace, + LINES, + MARGIN, + update_figure, +) + +logger = logging.getLogger(__name__) @unique @@ -16,7 +29,7 @@ class PlotTypes(Enum): HISTOGRAM = 'histogram' BOX_PLOT = 'box_plot' - def to_plotter_function(self) -> Callable[..., go.Figure]: + def to_plotter_function(self) -> Callable[[Dict[str, pd.DataFrame], 'PlotConfig', bool], Dict[str, go.Figure]]: type_to_function = { PlotTypes.LINE_CHART: plot_line_chart, PlotTypes.HISTOGRAM: plot_histogram, @@ -32,9 +45,10 @@ class PlotConfig: type: PlotTypes x_axis_name: Optional[str] = None y_axis_name: Optional[str] = None - margin: Optional[plotly_consts.MARGIN] = None - color: Optional[plotly_consts.COLOR] = None - boundaries: Optional[Dict[int, Optional[str]]] = None + margin: MARGIN = None + color: COLOR = None + colorway: COLORWAY = None + boundaries: LINES = None range_of_values: Optional[range] = None n_bins: Optional[int] = None @@ -52,7 +66,10 @@ def _prepare_stats(stats: pd.DataFrame, config: PlotConfig, x_axis_name: str, y_ # Fill in the missing intermediate values with zeros min_index, max_index = result_df.index.min(), result_df.index.max() - result_df = result_df.reindex(range(min_index, max_index + 1), fill_value=0) + if pd.isna(min_index) or pd.isna(max_index): + logger.warning(f'{config.column}: no data') + else: + result_df = result_df.reindex(range(min_index, max_index + 1), fill_value=0) result_df.reset_index(inplace=True) @@ -71,54 +88,127 @@ def _get_axis_names(config: PlotConfig, default_x_axis_name: str, default_y_axis return x_axis_name, y_axis_name -def plot_line_chart(stats: pd.DataFrame, config: PlotConfig) -> go.Figure: - x_axis_name, y_axis_name = _get_axis_names( - config, default_x_axis_name='Value', default_y_axis_name='Number of fragments', +def plot_line_chart( + stats_by_lang: Dict[str, pd.DataFrame], + config: PlotConfig, + group_stats: bool, +) -> Dict[str, go.Figure]: + x_axis_name, y_axis_name = _get_axis_names(config, default_x_axis_name='Value', default_y_axis_name='Quantity') + + if not group_stats: + plots = {} + for lang, stats in stats_by_lang.items(): + stats = _prepare_stats(stats, config, x_axis_name, y_axis_name) + plots[lang] = create_line_chart( + stats, + x_axis_name, + y_axis_name, + color=config.color, + margin=config.color, + vertical_lines=config.boundaries, + ) + return plots + + plot = go.Figure() + for lang, stats in stats_by_lang.items(): + stats = _prepare_stats(stats, config, x_axis_name, y_axis_name) + trace = create_scatter_trace(stats, x_axis_name, y_axis_name, color=config.color) + trace.name = lang + plot.add_trace(trace) + + update_figure( + plot, + margin=config.margin, + color=config.color, + vertical_lines=config.boundaries, + x_axis_name=x_axis_name, + y_axis_name=y_axis_name, + colorway=config.colorway, ) - stats = _prepare_stats(stats, config, x_axis_name, y_axis_name) - - return create_line_chart( - stats, x_axis_name, y_axis_name, margin=config.margin, color=config.color, vertical_lines=config.boundaries, - ) + return {'grouped': plot} -def plot_histogram(stats: pd.DataFrame, config: PlotConfig) -> go.Figure: +def plot_histogram( + stats_by_lang: Dict[str, pd.DataFrame], + config: PlotConfig, + group_stats: bool, +) -> Dict[str, go.Figure]: x_axis_name, y_axis_name = _get_axis_names( - config, default_x_axis_name='Value', default_y_axis_name='Number of fragments', + config, default_x_axis_name='Value', default_y_axis_name='Quantity', ) - stats = _prepare_stats(stats, config, x_axis_name, y_axis_name) + if group_stats: + logger.info(f'{config.column}: the histogram cannot be grouped.') - return create_histogram( - stats, - x_axis_name, - y_axis_name, - margin=config.margin, - color=config.color, - n_bins=config.n_bins, - vertical_lines=config.boundaries, - ) + plots = {} + for lang, stats in stats_by_lang.items(): + stats = _prepare_stats(stats, config, x_axis_name, y_axis_name) + plots[lang] = create_histogram( + stats, + x_axis_name, + y_axis_name, + margin=config.margin, + color=config.color, + n_bins=config.n_bins, + vertical_lines=config.boundaries, + ) + return plots -def _get_all_values_from_stats(stats: pd.DataFrame, column_name: str) -> List[int]: - result = [] - stats.apply(lambda row: result.extend([row[VALUE]] * row[column_name]), axis=1) - return result +def _get_values_df(stats: pd.DataFrame, config: PlotConfig, x_axis_name: str, y_axis_name: str): + values = [] + stats.apply(lambda row: values.extend([row[VALUE]] * row[config.column]), axis=1) -def plot_box_plot(stats: pd.DataFrame, config: PlotConfig) -> go.Figure: + if config.range_of_values is not None: + values = [elem for elem in values if elem in config.range_of_values] + + return pd.DataFrame.from_dict({x_axis_name: config.column, y_axis_name: values}) + + +def plot_box_plot( + stats_by_lang: Dict[str, pd.DataFrame], + config: PlotConfig, + group_stats: bool, +) -> Dict[str, go.Figure]: x_axis_name, y_axis_name = _get_axis_names( config, - default_x_axis_name="Category", + default_x_axis_name='Category', default_y_axis_name='Values', ) - values = _get_all_values_from_stats(stats, config.column) + if not group_stats: + plots = {} + for lang, stats in stats_by_lang.items(): + values_df = _get_values_df(stats, config, x_axis_name, y_axis_name) - if config.range_of_values is not None: - values = list(filter(lambda elem: elem in config.range_of_values, values)) + plots[lang] = create_box_plot( + values_df, + x_axis=x_axis_name, + y_axis=y_axis_name, + color=config.color, + margin=config.margin, + horizontal_lines=config.boundaries, + ) + return plots - values_df = pd.DataFrame.from_dict({x_axis_name: config.column, y_axis_name: values}) + plot = go.Figure() + for lang, stats in stats_by_lang.items(): + values_df = _get_values_df(stats, config, x_axis_name, y_axis_name) + + trace = create_box_trace(values_df, y_column=y_axis_name) + trace.name = lang + + plot.add_trace(trace) + + update_figure( + plot, + margin=config.margin, + horizontal_lines=config.boundaries, + x_axis_name=x_axis_name, + y_axis_name=y_axis_name, + colorway=config.colorway, + ) - return create_box_plot(values_df, x_axis_name, y_axis_name, horizontal_lines=config.boundaries) + return {'grouped': plot} From 1ffa54ee7ff0e31dbe1d995f34fdae7d1f6d4036 Mon Sep 17 00:00:00 2001 From: GirZ0n Date: Mon, 16 Aug 2021 07:59:10 +0000 Subject: [PATCH 07/12] Sort whitelists (Github Actions) --- whitelist.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/whitelist.txt b/whitelist.txt index e1bf1a82..0660d745 100644 --- a/whitelist.txt +++ b/whitelist.txt @@ -1,4 +1,14 @@ +D3 +DARK2 +DARK24 +G10 +LIGHT24 +PASTEL2 Pastel1 +SET1 +SET2 +SET3 +T10 abstractmethod arange astype @@ -175,6 +185,7 @@ subdirs sublist svg sym +textangle textposition textwrap tmp @@ -207,14 +218,3 @@ xpath yanchor yaxes yaxis -D3 -G10 -T10 -DARK2 -DARK24 -SET2 -SET3 -PASTEL2 -LIGHT24 -SET1 -textangle \ No newline at end of file From 8cd3b3359804e4bffb22a286a81397c9539d048e Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 13:21:00 +0500 Subject: [PATCH 08/12] Small code refactoring --- .../evaluation/plots/common/plotly_consts.py | 2 +- src/python/evaluation/plots/common/utils.py | 11 +++++-- .../plots/plotters/diffs_plotters.py | 31 ++++++++++++++++--- .../raw_issues_statistics_plotters.py | 9 +++--- 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/python/evaluation/plots/common/plotly_consts.py b/src/python/evaluation/plots/common/plotly_consts.py index 821906b9..5f0e6d85 100644 --- a/src/python/evaluation/plots/common/plotly_consts.py +++ b/src/python/evaluation/plots/common/plotly_consts.py @@ -45,7 +45,7 @@ class COLORWAY(Enum): # noqa: N801 LIGHT24 = px.colors.qualitative.Light24 SET1 = px.colors.qualitative.Set1 PASTEL1 = px.colors.qualitative.Pastel1 - DARK2 = px.colors.qualitative.Dark24 + DARK2 = px.colors.qualitative.Dark2 SET2 = px.colors.qualitative.Set2 PASTEL2 = px.colors.qualitative.Pastel2 SET3 = px.colors.qualitative.Set3 diff --git a/src/python/evaluation/plots/common/utils.py b/src/python/evaluation/plots/common/utils.py index 64be49b5..9aab172f 100644 --- a/src/python/evaluation/plots/common/utils.py +++ b/src/python/evaluation/plots/common/utils.py @@ -24,6 +24,7 @@ def get_supported_extensions() -> List[str]: def create_bar_plot( df: pd.DataFrame, + *, x_axis: str, y_axis: str, margin: MARGIN = None, @@ -31,12 +32,13 @@ def create_bar_plot( color: COLOR = None, ) -> go.Figure: fig = px.bar(df, x=x_axis, y=y_axis, text=y_axis) - update_figure(fig, margin, sort_order, color) + update_figure(fig, margin=margin, sort_order=sort_order, color=color) return fig def create_box_trace( df: pd.DataFrame, + *, x_column: Optional[str] = None, y_column: Optional[str] = None, color: COLOR = None, @@ -57,7 +59,7 @@ def create_box_plot( color: COLOR = None, horizontal_lines: LINES = None, ) -> go.Figure: - fig = go.Figure(create_box_trace(df, x_axis, y_axis, color)) + fig = go.Figure(create_box_trace(df, x_column=x_axis, y_column=y_axis, color=color)) update_figure( fig, margin=margin, @@ -71,6 +73,7 @@ def create_box_plot( def create_scatter_trace( df: pd.DataFrame, + *, x_column: str, y_column: str, color: COLOR = None, @@ -84,13 +87,14 @@ def create_scatter_trace( def create_line_chart( df: pd.DataFrame, + *, x_axis: str, y_axis: str, margin: MARGIN = None, color: COLOR = None, vertical_lines: LINES = None, ) -> go.Figure: - fig = go.Figure(create_scatter_trace(df, x_axis, y_axis, color)) + fig = go.Figure(create_scatter_trace(df, x_column=x_axis, y_column=y_axis, color=color)) update_figure(fig, margin=margin, vertical_lines=vertical_lines) return fig @@ -118,6 +122,7 @@ def create_histogram( def update_figure( fig: go.Figure, + *, margin: MARGIN = None, sort_order: SORT_ORDER = None, color: COLOR = None, diff --git a/src/python/evaluation/plots/plotters/diffs_plotters.py b/src/python/evaluation/plots/plotters/diffs_plotters.py index e97ceb94..0c1f4d40 100644 --- a/src/python/evaluation/plots/plotters/diffs_plotters.py +++ b/src/python/evaluation/plots/plotters/diffs_plotters.py @@ -31,7 +31,9 @@ def _get_dataframe_from_dict( def _extract_stats_from_issues_statistics( - statistics: IssuesStatistics, limit: int, only_unique: bool, + statistics: IssuesStatistics, + limit: int, + only_unique: bool, ) -> Dict[IssueType, int]: categorized_statistics = statistics.get_short_categorized_statistics() @@ -61,7 +63,14 @@ def get_unique_issues_by_category( key_mapper=lambda issue_type: issue_type.name, ) - return create_bar_plot(df, x_axis_name, y_axis_name, margin, sort_order, color) + return create_bar_plot( + df, + x_axis=x_axis_name, + y_axis=y_axis_name, + margin=margin, + sort_order=sort_order, + color=color, + ) def get_issues_by_category( @@ -82,7 +91,14 @@ def get_issues_by_category( key_mapper=lambda issue_type: issue_type.name, ) - return create_bar_plot(df, x_axis_name, y_axis_name, margin, sort_order, color) + return create_bar_plot( + df, + x_axis=x_axis_name, + y_axis=y_axis_name, + margin=margin, + sort_order=sort_order, + color=color, + ) def get_median_penalty_influence_by_category( @@ -105,7 +121,14 @@ def get_median_penalty_influence_by_category( value_mapper=lambda influence: median(influence), ) - return create_bar_plot(df, x_axis_name, y_axis_name, margin, sort_order, color) + return create_bar_plot( + df, + x_axis=x_axis_name, + y_axis=y_axis_name, + margin=margin, + sort_order=sort_order, + color=color, + ) def get_penalty_influence_distribution( diff --git a/src/python/evaluation/plots/plotters/raw_issues_statistics_plotters.py b/src/python/evaluation/plots/plotters/raw_issues_statistics_plotters.py index 09fa0df6..abc74092 100644 --- a/src/python/evaluation/plots/plotters/raw_issues_statistics_plotters.py +++ b/src/python/evaluation/plots/plotters/raw_issues_statistics_plotters.py @@ -101,10 +101,10 @@ def plot_line_chart( stats = _prepare_stats(stats, config, x_axis_name, y_axis_name) plots[lang] = create_line_chart( stats, - x_axis_name, - y_axis_name, + x_axis=x_axis_name, + y_axis=y_axis_name, color=config.color, - margin=config.color, + margin=config.margin, vertical_lines=config.boundaries, ) return plots @@ -112,14 +112,13 @@ def plot_line_chart( plot = go.Figure() for lang, stats in stats_by_lang.items(): stats = _prepare_stats(stats, config, x_axis_name, y_axis_name) - trace = create_scatter_trace(stats, x_axis_name, y_axis_name, color=config.color) + trace = create_scatter_trace(stats, x_column=x_axis_name, y_column=y_axis_name) trace.name = lang plot.add_trace(trace) update_figure( plot, margin=config.margin, - color=config.color, vertical_lines=config.boundaries, x_axis_name=x_axis_name, y_axis_name=y_axis_name, From 43115986407ac6f5a63763ed55061b9e39fec691 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 13:26:41 +0500 Subject: [PATCH 09/12] Small code refactoring --- src/python/evaluation/plots/common/utils.py | 1 + src/python/evaluation/plots/plotters/diffs_plotters.py | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/python/evaluation/plots/common/utils.py b/src/python/evaluation/plots/common/utils.py index 9aab172f..6f9e2540 100644 --- a/src/python/evaluation/plots/common/utils.py +++ b/src/python/evaluation/plots/common/utils.py @@ -52,6 +52,7 @@ def create_box_trace( def create_box_plot( df: pd.DataFrame, + *, x_axis: Optional[str], y_axis: Optional[str], margin: MARGIN = None, diff --git a/src/python/evaluation/plots/plotters/diffs_plotters.py b/src/python/evaluation/plots/plotters/diffs_plotters.py index 0c1f4d40..0ff94b64 100644 --- a/src/python/evaluation/plots/plotters/diffs_plotters.py +++ b/src/python/evaluation/plots/plotters/diffs_plotters.py @@ -151,4 +151,11 @@ def get_penalty_influence_distribution( ) df = df.explode(y_axis_name) - return create_box_plot(df, x_axis_name, y_axis_name, margin, sort_order, color) + return create_box_plot( + df, + x_axis=x_axis_name, + y_axis=y_axis_name, + margin=margin, + sort_order=sort_order, + color=color, + ) From 0e31a876ae39cf03d09db74775f010eb5455989f Mon Sep 17 00:00:00 2001 From: Ilya Vlasov <55441714+GirZ0n@users.noreply.github.com> Date: Mon, 16 Aug 2021 13:58:43 +0500 Subject: [PATCH 10/12] Update README.md --- src/python/evaluation/plots/README.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/python/evaluation/plots/README.md b/src/python/evaluation/plots/README.md index bacce3d2..be7e8797 100644 --- a/src/python/evaluation/plots/README.md +++ b/src/python/evaluation/plots/README.md @@ -96,18 +96,20 @@ The script can build the following charts: Run the [raw_issues_statistics_plotter.py](raw_issues_statistics_plotter.py) with the arguments from command line. **Required arguments**: -1. `stats` — path to a file with stats that were founded by [get_raw_issues_statistics.py](../issues_statistics/get_raw_issues_statistics.py). +1. `config_path` — path to the yaml file containing information about the charts to be plotted. A description of the config and its example is provided in [this section](#config-1). 2. `save_dir` — directory where the plotted charts will be saved. -3. `config_path` — path to the yaml file containing information about the charts to be plotted. A description of the config and its example is provided in [this section](#config-1). **Optional arguments**: Argument | Description --- | --- **‑‑file‑extension** | Allows you to select the extension of output files. Available extensions: `.png`, `.jpg`, `.jpeg`, `.webp`, `.svg`, `.pdf`, `.eps`, `.json`. Default is `.svg`. +**‑‑group‑stats** | If present, there will be several languages on the charts at once. ### Config -The configuration file is a dictionary in yaml format, where for each column of the original dataset the types of graphs to be plotted are specified. You can also put the common parameters when plotting multiple graphs for one column in a separate `common` group. +The configuration file is a dictionary in yaml format, where +1) paths to datasets with statistics are specified +2) for each column of the original dataset, the types of graphs to be plotted are specified. You can also put the general parameters when plotting multiple graphs for one column in a separate `common` group. **Possible values of the charts**: * `line_chart` @@ -141,10 +143,18 @@ The result will be two graphs: line chart and histogram. The values in both char ### Examples #### Line chart - +

+ + +

#### Box plot - +

+ + +

#### Histogram - \ No newline at end of file +

+ +

From 8e6a27f5df271524e37a3db8458de0c03ee7eb48 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 14:00:04 +0500 Subject: [PATCH 11/12] Small fixes --- src/python/evaluation/plots/common/utils.py | 8 +++++++- .../evaluation/plots/raw_issues_statistics_plotter.py | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/python/evaluation/plots/common/utils.py b/src/python/evaluation/plots/common/utils.py index 6f9e2540..4ee1fb5c 100644 --- a/src/python/evaluation/plots/common/utils.py +++ b/src/python/evaluation/plots/common/utils.py @@ -96,7 +96,13 @@ def create_line_chart( vertical_lines: LINES = None, ) -> go.Figure: fig = go.Figure(create_scatter_trace(df, x_column=x_axis, y_column=y_axis, color=color)) - update_figure(fig, margin=margin, vertical_lines=vertical_lines) + update_figure( + fig, + margin=margin, + vertical_lines=vertical_lines, + x_axis_name=x_axis, + y_axis_name=y_axis, + ) return fig diff --git a/src/python/evaluation/plots/raw_issues_statistics_plotter.py b/src/python/evaluation/plots/raw_issues_statistics_plotter.py index e3896621..6d8295ff 100644 --- a/src/python/evaluation/plots/raw_issues_statistics_plotter.py +++ b/src/python/evaluation/plots/raw_issues_statistics_plotter.py @@ -1,4 +1,5 @@ import argparse +import logging import sys from enum import Enum, unique from pathlib import Path @@ -137,6 +138,8 @@ def main(): configure_arguments(parser) args = parser.parse_args() + logging.basicConfig(level=logging.INFO) + extension = Extension(args.file_extension) config = parse_yaml(args.config_path) From 35993344bb118c823c5af0fa2eeb2cac32059e85 Mon Sep 17 00:00:00 2001 From: Ilya Vlasov Date: Mon, 16 Aug 2021 14:09:37 +0500 Subject: [PATCH 12/12] Updated examples --- .../examples/BEST_PRACTICES_box_plot.png | Bin 19384 -> 19449 bytes .../BEST_PRACTICES_box_plot_grouped.png | Bin 0 -> 21325 bytes .../examples/CODE_STYLE_ratio_histogram.png | Bin 24492 -> 24012 bytes .../CYCLOMATIC_COMPLEXITY_line_chart.png | Bin 44576 -> 35501 bytes ...CLOMATIC_COMPLEXITY_line_chart_grouped.png | Bin 0 -> 43037 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/python/evaluation/plots/examples/BEST_PRACTICES_box_plot_grouped.png create mode 100644 src/python/evaluation/plots/examples/CYCLOMATIC_COMPLEXITY_line_chart_grouped.png diff --git a/src/python/evaluation/plots/examples/BEST_PRACTICES_box_plot.png b/src/python/evaluation/plots/examples/BEST_PRACTICES_box_plot.png index b0108a1a12f6e24014a4cf0996f466e16213e2ce..94b59e74b997eaff86a58d744f535b1f27b43612 100644 GIT binary patch literal 19449 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 F{2v4#!+8Jz literal 19384 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 Gg!~WCipA{! diff --git a/src/python/evaluation/plots/examples/BEST_PRACTICES_box_plot_grouped.png b/src/python/evaluation/plots/examples/BEST_PRACTICES_box_plot_grouped.png new file mode 100644 index 0000000000000000000000000000000000000000..7965aa25c1e72f2c953416db54eef7c0dada9b07 GIT binary patch literal 21325 zcmeIac{tSV-#1#E2S*~dDTP=q#-HQCoemM~0`R2aLF zWel>-Ff*1h7&G&nL)UeEulv5g&mX_zcR$B-Jooj_9EUNV^K-86<@I{K&nE_YS{!@% z_wLxSgG2k;6{8(HnBY5h>|9}E0pE;S(8hM`5ZR%92$S(|4!frf1n2=)>{nhO2i=1MMidWYy``fJ%try!j zEj#2JQEza8oup(aJ_Sj(9$Vf#3b#gj^YZPDxHQ4KlbKs%$JR$^$llL9@SSOA5+imn zv5AB*J}`T^;UjFn{s7;E9uk4Q-O2KDh7i3{&Wu zoSOLS5jI==pS{@;s=>|;4;7N(i~94W8blAS?a?q=V73gwaI8RT75^Of&alLQKYODg z(#6E=_O`XHMfA^?f+^Vb*LeP!f`4|wKL-IEj(-lqKU45u?*e%^Yw(a?7jfSitzU*U zWp{LHLfiC0>u2;H+valz;E^G}{`b*iXBdjU>o|nN;R=zTsp9CiEpOY+W=rRKhLKO@ zX>w-!>alID&+v&rsOlPFsE3-&Fj0{# zWrDAR@G8nKej6| zr6e^;q`Ieg5uaTl3I!O0E<&IGt)HRAY_>Bz5$``it~B{E|Bk{#h2gQvoT%JRgrW7O z9f6Ziae1G7sj)=|c62e`*q_p%?`^yI>6F*%n`8u}N{u$}9E%?tP2EpGCD_901%em5{hvSAqvPYv1FchODuGw1^%vZyR_8}yR#-37WfoI;a>0~R zo<=aq#m;URO0f|RT*@&rHYU+p?LH9p>kAE7T;0pt#W%K@FFN_65=UbuQcr1#kK_om~Kr&nmLR+V>Vgh;ran+i7OCyp6U2%^s(cB{{;pN=Dx>~Gnd_E3&M zjNEzn7E5@_6JhA6S%BK6sHY)F>-#;o{4^3>|C z#Ou%Hy=aNaH=pq0mGY`qswvJ&?${`_=}j*5876IDhaWf%iW;8I@V|yw7|I%wV!c1~ z6@SXE`sr(!1#CUWZeX*3D(0cZ13z+>R!#_UE$z2Z9q#uX_niKkiIj524WyKMnD2-4 z)N++5fBPub=q!bVJr zd4zL=-n&w!6h^zt5|yg*OUyWmoO`F;MjR|`lN5}0vu|nza4nVEUcq09(d%ibIT)?J z__6|-@kTKk7E*ry70-{tWv)k+2zRZYk5WJH4eiV2J*Y$*^G{O<;5FKWql!PUTsU$u zG_bbfD*kS3n&g7>w|AsW`I*c2rT9%u8|q!%eJ?yfdv4qw_TiXEoABbix(j#T@z!iq z0i){{w$!0;4>we~8h48J#yuJI3HnlGv|i-xH}}HTu3@A73fa4HbG7vjZSY_crbDC4 zFNz$AB|B3q=J2cosTr?FTR(&&8YZfS0x*x~_T6-Qqd`{FBc^|FRDft%`kZq?-Te3@ zoenK)S@TN$xIeVdo>yNGuI(&UySMs?BeEv$(|ssw*iz)I9W+*lWRIM{S_AY3kA zOP1^&=_poT8+DX^t@&G6&E;iFyfPe@*kQ0aHpbNbc9grSfgnw-A^u>7IrthTN%(~M zcF&9A&!%P^8r7_~>mG;4c8YP_KE^VCR>+ZUP^0!J^LfdSVjORn+1JK@3(6ihxl@Gl zDf3yNHB$!)E8RTvd!63aRX4T<(N@=B;yRQ`L+Vhz{rh02-t5Ri^SUPL+vHx8)9FXE z77z<3AX!w@x5wK0vmcw((O!2w2jV2-R&dR0H&b3o`e=6U4Fk^TU( zpuw1-XXSW!r}s2e&m6W&TJN$vIQ>!Q*jChz(E>IVO+WO+I9=rkRPQH6*w~whLC|9* zJ}uf*PYaer3(l^@;pFe|KOq;i&bJFzB%Ngu!E8$V1QB;FPijRJM$6n({IA^=aBO4_ zeE!c)wf0H_^lvX;m8_V)vE}RA%?umAyT|sj#%r;yxxH1ZVaDusX>pl1QCUCINYV;n zG>Zx5fwvj~`-N7b2k!WrzXV>e!*HClB_nN7Y;TmEr%>ox|4E3QzjwI5xSqL_)3vOP zYQxx5Q)e=Od*qJ;9-sN{#qH$pHN#8we(A1kyVhS~7K*9bq&@w*x(EIEtjGTCc%Yc~ zaRg?xa@~qUP+cDioJ{J)iXuDIiBkbnErnpyTPhTmepj%YM7ojc$nrDa?pdAuN|MuUOLF7k>b$-WRW(eoSVKe4zT{^nq8bQf^_@YBwubjwu)roH8wUHCN4$vu=q#*oP_Cj*fZB zLb`t_!4d45`Ty85xho?oLDlMl`0>xqt;jLc0$Z-2O8e5_HOG4XO5s8jpT5yG(NXK7 z_vvXbXB%JE(?5z%eG5ufwvl*|SbQ_@;+=r2_l7{D%72@6FfBHX_6_Nlb(UH$j90*(~-LPa{;SD2G2c_JtK<^ zS?3>wp`NAveMQ6}>Z28=3_rG4!5Xjk*>9%WwAtyDXE)tTD+}#!zsj9(#`X$gelX`d zDIlAb(B5j-B}`ex5y!=pYGyCuv$&ATb??(5zs2k0^Lm%32iS|yJw1tN5J@zk_SjlU zv^H)>b&sEF7=)3lYSeq4EovvL=O7qC#EG;>+wIryb@hQ!iGMqU`$ae3e@Ohc{jqTjYsE0xxTh>+n@@9Qx{tudU-sE~K(@)e76k zeBmMx`3wJcoI~F-!(=1fWe;KB@S#pQAdg~4Dyp5v{N5`I&NSaA1Xo%({A|mzB`b9G zX(gVLm+ub>Y+5hqe}@3!)>LB_ZgYMk2!@9~3|rkSw~N?2ZC*1#&NrrO7n)YV>#9pr zrVdCzIKKVI69uCvmrQ+2%ryBvAj7Lv);X(?{*`$3j0%V=kMjR*Z5b!(3=g7;SpGY+ zn?2#}WE^O3r$yWr;1M##WXnPruWC!Eqt4u5pUQ{iO|aWC1%yZK<b^b>WRMofCx^DG*54Nwa(PKtQirPsp_eEHG3B40&vn_R9 z;IDamAH$y8Qjas^kJ&%94(Z7m5c?Lqz;Nb1A$2aZgu$iWdrs z{F+zG#bty%`lGkG(lk+YsC?O1mHe4m0g~5l@s_MURE&H;FfDk|Qss#vT(=~KRR@z_ z=Eg4IO1;Bs{1cW6O)`sD7u4T!U3k#lcTvB{C)UaoW}mQvNmF-zv^PD0&RkR}qPBtZ zT|j3Ua!Jg=C$9E2uB*;Dzm~Qu3Zjsm`-=$oS3if&1^99ft}gpj;a}%Zv7g8jhE{lH zxZGrh(cNzUJr^t9|L_>GRMWo`lg=o^94|>KWc8v5KY_yzwlC*#}VoxmY;k|dgU_uv_O$Vo?|3T7R$A0*m6Ush2 z|2jKG%&C}?fw#aII~66s;5njPmA+(kf1?-QZG3AZ)#TbhuvDcmh6)ouEg$eH!;W4r9NhEh zh`!SVF@0#|hdCY{NycdqExpN93g`_TjkMAJ^YDE<62TFI0pXCmG*|d&)15+!b#}vWEG|kIii}yIR1+rDIx_imrl-I?9DI$KJK&~8jcs^ zXi!4uefJ)!Z^C^pUDm^ky<|yS5kw0IZ(OC;*KD-Ug+LJw${nAa#?EPd`8wCzuGWkTJd1C03+^H|lIvmhw%T`j?-4c*2+t0zR_99VL}7=?>tu6 zvJ}UAVXJrE1Q(MUiU4kc9odVt30PU{m2twwt2-}!MdQt%2vVgufLC5=YE6-M#olo; zLex%Cfd%bAs?>jXZcX&Rzg=#Sxg`T zb;3=3Z%-@e5be?PNxXkW6~+4%l^|)co!9&|wc?H!8RJ;+-r1@>7-raVaq%(|TVaY@ zSzaA`C8O_}a5^BuQm$~02A!FiC5(H2s=e8LsnGm=g{u^_go2~5sKRvx`V1QCi&9qv zF%EV&vrJ))CFd^J72Hl?B@OmvD&gAcNAIXEJde2kSl?jS-kWv~qQ9yNM>;DM8~3XU zcM><~hfYA6lMKUGFITO%5q{EqdA0LqI!aK9H$3R-O#&<;QQOcw_bmnt)C>@eB*Ur` zT(jeuX-@fE^nj#Y-Kx|aP;y0@Z0VAmlmY`{ij8El_)pD6!yVxDrS$J zl@t|k3PP!`katUP-iV9Pnc?Trz_^8uEYLQ*5Wosu5*2UNj>?05kzm<^m(nmCcQnn- z97|H#Y;$8%8oS=C>zk7=kW9uS+eQ=M%>pd9c5oe0Jf7k;;)cVk6unlQg^k6h2?L&^ zTBFn_p*P)wLTBfQ@Vdp)BryLiV-pKNEB!P~$1P2ygaPZ*H$~SK>`GEf>ue&~PX=2JBznoKAi9rADM!U%t=1QQJjJAx9!z75|OXFT3f0 znO<~=Jd;Y#t&aSPyICqd&&1m`WiAozKayJ;chxPVyC$E_&T_3QeTp6|({6~=L&e0$ z_gJj!OF&{>)dTpHg)L+BzpbKV14Shd@)=ENq>okkzMDT9+RpwjXH6IgO>J<^+`s+~Yj}MBH2aP;Zy&xM-#lIUc8tY=%3a_8nDzH_8#qQzC zv)@{Zz*p^I!Cx65=Z8D6^9T1zx*J^Yl1ak>!dSa@$ka!foRnd3jn$qTUJe16BP~Oz zN#M)VTyd#{1G0k2sGhPX@xlk-TTtWSN1;mD0dA59Ggce%bi3qbhZAv1w2Y9@Ixp$z z<4njgfeF2n!ues+&xR_)F16CFV9WNfOVJr*%PyG=oU)#XU8zgb8Xy-sZfRIS*RHBY z-sm;%WjU!8H!s0L2o+NkJ~tdwxs3!u%m5OoxzVqfF}6E(cAd^@wb^L3$|w0J6evbI zpW3>g0R>uB^bU@mXi90Ce|e}e`%SzmZ2kv*qo#(+$|)%-YRlnlYJ?i_UVj~Vc=vgw ztUt5>ROcuy{@=Zb))$zd?8IxkYCd%X!;Ya-LNOgbpT}LlV*wiC8oi2Fe#@^bY|_NEP8u#%b+XQ@0HB=E zK!m?H*m((OX0C2=M;|#Ek&Wk45Yf!F%lJT)m&u%wxSU(}^@g>jVM|5NXN}ZxzABum zUeTeav4!WstAcH}nZnR~Aows8{w-2~7(}!+tWCI3np(29rdTz9PE)})puke@gKOPsCwq0ztGTs*zwk;oRi&7LD1F<_NA^WqQlB%7Msq=`Ij<8@UppoWM z2vD;kp*t(z-|aCp1#tNH&X{c+l-nC9QLtiPAMR@8LQA9vS=@0@Df#e0(X?SoDHc*z z6+HG{KUSFoRia>9fPa9y2YGHQq(SsAXsg|h`iKZdpmSth4I=mn);O9A0I9hiqZx(? zU?d0aG0vv2FH(46t>q|8Y_1wCb_?IpSOEf>*-nux!J9mA)2H=poFz~gPSxt{k4r<~X!gEEED&C)vWAVRvS9L>c!QI7U*nw%Gi-6#9KNX=d{Qdu+*jkN%TS?#?^Of_p`43AnwnbTKti)J_Q~M@JRM6R z|D;B0?~&YNWSx2m>L%-cs{*Rfj^x%5nP93NHr>Fby1N^l%>Jo3M_lRWfePx)LK%l% zw&DUraOgUz&YARS(IPhx!~=(9pf>taL03DGM+zT3f`lowtx!pqc17KNIT1Jda@lUz ze%72d=d5{_oy;mcU;9fdhHG0lA6-&98;&6{kIYDjLxR*qX2x_bBh_<)HkaFDU}*8drE8aeek)NF zilQPtOty4q3kV=kXQK>+`_eD^OiEB-QCXMs= zhL%WNb+BbN)pI!+(uxEGGfWE~tX{I5S+(}c1*+Q2_u`Vfs5s}(bsI!yELD_S8|2@o zYoXLUYV1e9kFi`OSB(bKJpt~SksuRZ=`szn-och4p8+KAJOqrC? zyIiO{$zN!^U{Cf6?WWYq^fJ#vABJ35l{#!DEe;AjUP`xszvnw^j&-V zIF)HKBFub1NCzNXLH|3u?05_bPY58^7>%d_r@!b6YmWq&IYFQsI^|SpsHEGOZ0p#?3AcmbQ z*A9|}Uz6byfi(0@jcmu@Yj%u5Jq0G2*U8tg=QFDpx;A2J^Ta_t3;=VzaHE%& zcq8M>mheq)@Ey)w^&qXV&%<);7;*)#u^^G+n zkemt!ov$mqwfuKB2{;-ex0RwHHjI#WW{QGQO(qt()i{3B!Hw+D)6?r7^?hX???d`` z&Z>B??Tk|@SNVfAqNi?Z)wPrh&?125{5yYdaR5F>T`Qv8AS@T5`xsuPq=%y}&wsa# zhv*oH=ZBvPZgbe&)(q?Tp5zVOE##U^LtPWcD8Q)trV?NEsmht+YnAxTb zZ#=v!Wm|+R;>2*=v(3S`$5`BeSf&bF<(nX;G5D1N4Jeln46~+UyoIVRle9TZCR@(6$uznLKEEKrsa#?G}#u`L4o4 zswpL52!7~SBL_eu3NI&p0gL+&Ml-dQKmET0SAi6}5nZPn-rCXo8ip_rmF+a>T;=e> z#hU*|VHpFElV+skP8SGyb^WLE4Hv%qFOTZ?1rZN6G~TTM5nVWjqdEQ$NVkF!1<&n= zA87|++EpF1V&js+DIm9MQmu2TTD6pOevFi|dzv=W8Lp34%3qBAcvd~wo1QM{Vvb4C*axK21s>^q8$__+2>lv>si zBTJ#DK1gnvn~2#&bcztV{5nPOkCyf<@p?Xp({SqDyLWDFB4OenL%F08eU1?gv<&hN z`_?kMCCLs04~jj1t3qgY(15qi=6RzN026Mfhc?6aA6CD5?kK#cB?tau3O>%J*gbiL zQ@vdL*--IBLAZkB1DD$mtG*{HEALeUX-o6rE-v*4=D74b@)J!1b%pJ_TZ=JP{GWF0 zn-v{%jqS~f7tg=4_{>sHch9V;hXtF+!}B|Z95IcGmLXdFn^1Lb299olGAx9mqze6= ze;kMdSUuxmW;YGiwtJ%7xf=M@grAMI1ht<1FP1|Dge}<*$lQtozFYVtz%QPr&iJ?? zY7#3P)K}M2%XbYkBvtEO$#jByr_VK_zh>JLhPx|b2BB$u3`5EZxOOH>cq*m}0&x)p zf$QV9zz_a*BVG>(Vm<-LH{_6v1VlTU3!=F|0rQpYXy9RcesF`wy- zC@-|lfuAxx8PE>9S4rsMOZ0-_@XBt6QLjlosK#2FScyMLio@@11Ky=eTT)UI4+DaX z980* zIz^3cnZ@Gc0abOMKf@~(7`H`ZE*7^Q!o~Wk8Pxd1dUfv>ue^gIB)?gC8h1SJe*0T# z`r%5X|4YCwH>TkVe|$(;nnvcF3$M?Ilpn*}#&e=8V@ChdIApAB>_L~g<>ds*md+`g)^A|%{K&O^x1cb*Avd9)9P3` zg?f@v3bS#;u6?=s2*oMo54NmslxgxT=kcI!J_uL%|M(A?w zODlHyv0v`3mNPlcdS<4?SAC#T>k#(IT(jPKG9d6v6Pv84XryK1t>_^#e`YR+Q~pR* z;v%Qppl_rND=-1e3_4B9R*z_@qEZdAp4;r%yWN0{CC zk$XDV9>&{MtqL{}dz_P13Om(VV9Wami!gWRbzI;3%LlTw`1PvXX6g#%XOGVu0gCDM zO9vcOGJhOkaccge-hdYCXanygTq$w7cl1ncYqBJ!Y=H5y|OSN`)L!ccxbWW%N z4uNfGmJ^Kvr|ondj5HFB8gcN0qG>4 zMVbVrQ*EuO)satiddk#FyaHOBd(C;^x0zUoXTuaiE>FE+L|9PKk7U4GSDvxG1T^^R zl|=CddiSA)!S(uNg%2-5_;=?j@(b9f!p}5Dd_Sm6`y{ zRW+{`iRpM`-o+&j30J#a$`xwN{?o~PJ;_0HRP3^-VA5~IFB3tR0X&Iib~|D3Re_PR zDYrO*{P>IJ65*C(aPhkrUNHHpf?sG}C)zW`T>h1|^Dt7f@Dm_J6cch(7;&1WF55eA9V z6HuxGns-gq5Wc=u@MxU`Kr-_em!Q!5x}xGSTqP0Od>@(_krUw8?r3^jarKy6)kt2v zcy-U>VsuP=?`-e`F#EWJxUpuC0p1?b*s1ae!+|lVJ*0K%u!tzU9^G(L)fafl7FrN73=e?ATY+s*3h_bFyr!ks(4pyu;A2+4U|nDs&E z^!t7|pwXr7PJ!s^dwIDdGdJ-Xz#!Nzgyo4tIL_^{4MPzRRd`%%a-JF-lw)Fp90w3L zvp`cXIH5_*GEL49c8gjN?|Hbm@B^@JzX(J%EEeMk4E&9-M2tKC3W0CZaj zz|}%cn#4-b=Mzof<>*Uh(h`u8qXH?Qz$6|-k@2_0AeMmWe~AGvcN0AgT!dL%tgcu{ zh!)7Vw90r?q?()`YZJlC{~7K-tNYJp{=e?*D(q_~)I2Z;z!Ygcajf8eCKLZqeMITW zpvL+a;7~Vzh+y&sw*JF&kKfotZi#3R`7!spjex*wmZALq;@p;hui43eVS!8j_nrfm z>wP!xb-vah1_LkS&b}MZ9j5S5Y$}XfiJ}myJeN=S4yJBi5l9wJ7+G`xe&pnXk(HdtxQx7< zcupPlikYstQvv-g0Ij1?E+QJC*-YaWI-+XHyP12+woUST?R z&`QW^-OcYa`g>(rbA*4m^&PdjS&@{C_6&ISWjZ5qwCtSe`)M8(+M8Oq9IhH^;)^OBbehsfa_JN9of?gbEhH$UaNjNh#&%ftgrs%*$6 z=A}$Obj4aKAkbvvc^c~tqxFi!S_1LQ23M27urElmhnLkiuzS#ha6UHlU}}A=xh~QE zY}IJMYN1hskpJ?!q>_{aCwbOMSIFRZ!XbbqM4Y2v3y)P$4fs{u_X2PP+}gTs$g9N2 z@u7;=!!|({l2xuIHm6apUCo~9{n6`Lqg>@J8>kl%O|7E8L?fWso|j-%?Kc|69WV?;jN1 zhFHOzhJ=FZnvhnbZDx@{y>D}MJjz$Lcyz|cSwN3)5N}5R;wphd-{#qVj}l^I@Wp^o zKNYa*g8wl&IbrhdrYPyYxgB82=hPb~Uhv{fik$q&Nu|5;W^-}h^Ib`Mh2~!v9}Cf_ zWDXv#(yHlODD3Nd#;AtaA5imnzzkvoP@E93!FFEJyPct7Ni4OHvyDKi86$;ZpvY3A~$7%I+P1<0If{^(Vh%$qC3Aq5|wry9Atb3y$is1^a+(K2o~+nNs8FesHl z-9vkh3d0>`tm>zBc)J){_0Fi~fr7%h)o4^5Vg+j@d>>S#nq(X7Y*_lDnQ+F?M7DLM zYgSSpySe`=X&@kDw*CPETX>$&Y2sPj^=pq&->U@VU_}cZ~cI<>Q#Ks81k33e*_MVzCdU2n@HC;ljO)So2;BqhD z?APaaNed%`qj1lW2Y|XXZ)M_X1wW&e{B>*1NUrU2+Qu5~$_$atzKRB4q0aNzn zN|P&a>`<_(zlOr8i?`03n;uGIaGO&dFL94B4HG@f z{l#cOe36&XS?!uv^*urO&UIGwis9&pIvr$Xb%ocR8JR1sLI1}Zu)`TV;WinG27 zr9ur99*I$^?ajcJmJQ7UMRycU507ZQwl~eAQ)#i3`)j*Oyry#a@{Jns;He^MCAziu ztg@l630zOU@KtZ7I@jrdY8O0|^aB)9m=>Zg3zxjXy)U|}%*G6uH4fU-+D}k6bR}1b z_~+K5yHAc`dowdj8|N?iUR`$0@-j~l7}etV(s?sK&w;ZCuNt7whR#y2e7!1qVdjHd zBV|45al^*y1Z7vg6e$mRXbpORM7 zV@M9BpW>#}zRNj%e+gDh#mT=@kfF`BYzKE#Cpyh6=KN8|mBD^j zg6;ETaPq{$r_aapD)x(UXbF=5*X`KvOsE?}8~jXVax$aGm4z!vOY6xXXr=Z~0ZY1s z$!xBhj=L~a78v=uafPL+jpIp({_a%Y+o(orCceP7dvqL7u->zsVxUUwIVH}uEug4C zuPSBKu0HFw8&I|+2*4SvtD*69k!ds5e|)M&&hMrJweC(0{(hfTXS>ilPzybqC|GY& z8_X4k%6so%)dchs;i`6}_=8O2%!Kp?$|!v^N!eTv)V_Y2NzG}XaORKL2v!FF*hlUZ zrdQo{ga#V_IFDb3$JlfDWQ?aF*6uZ|VC($@J;n~8yQc(gU5%MH#h$H(zL#vSpPgWj z#x+Wd^;c_inAR`&lVMbFWEjq6yU+O|`v#zRV$w9Fs|vH+4IW6QTp5 zL?J-G{k^-H#g8Aq|7rfJzgN@V284&%#vLA7t%pyTMj2p*Z*?XX$+FoxIJP!&)f2GD zj3IUEjS_#g?9Rr)!Z%p~_wmMU@#{k9tX+_)AzyI*3Mg|6$H1tXR8tCWJ`ZD-@fBxM z4WATH#ET0KN?KmnxB2UGoRBn- zM5TG&K?$)d3Y)mASzq{|B|GZhYbu1`&->#d2N~d@{}N9DkMxT<58?RhiXDjLzv`TT zk79lYm|4vrW|u#Gl*UILkb>&iAh%Ubj2`~dQ{DQPt9EQbUjLV>hyg5Yi@kOVFdAie zKah_a0gqvn=(#P*VpOPJu?fM%ZmHk7P62Zt4>rw^&ct}HJTi^7DdX3Q%9I&8& zQSFS;7y^zZOO5HmR@v*;2POxk#yQe6+c6R2^^doi{4z#QE@5zl;2vNkhlouxL-m9Z zr1Uep8Z;ya@8(|vuvGnyJWv z8!c?zX&JMZN~R{5cG;BACl}Vki!AwDRD=CnC5(v=O2ZY1aC|! zaHJ8F(3Jb{LB(T93Jh_hfq*avqA3r%J58Rj`^cAVBfhV2X0W&6QJjpzPsYU(6dYr( zGs-Z5UTwrTPPsZihjFC?%`(kwmuW)}2SZPgpjcDpvsrD0va_+Yu|nyN(JTEr=SVf` zePKt!!!9b8?q$sL76S3Q7X&3<%)#hJodm2mYQ(+4o7$haIeB7ZUrND(vaj>}M@oWN zzy*@9Dk_K-vXSqKudC=Es?SVW<#Y@8x$NaPx7?p&YD4u~D-$}brsFWBZX+h-QWCF5 zvE(4=_ccFBW2jviCP8(z{rafwxTV57^U@&m@K&|L0Cr) zq)jg&Yw3f&A5~Z1EqC@un-A14ZZ3tD&vn}tU4<%S3-p&B6|}bH1tTak3Bgo(J#+#4 zQBN8JKaGPcQ-&s@MzxO6<{ZXo;dq(6hRgNXDzco*#2x>jZ`lXJe8E);{n?Xe8|r`0 z1<>X+ZKE|KsN_ppr1NCqkL0DV`%CB;PgVH`Ar$9KgKMS&q;3v#y9rGfaDRo#CL*G* z#xrY03S6IX?+trjQP3{=`|2j*F?`)bR?Auh{xhMYO34{HXj?bEWV8`H3}ajpVM&>9 zR$5kHKdjD(J~d7-v!QR?atC_xHM?6NXz9!DWoxLoABMcBOjmbZYjcD4Wnb)Ml%$vd zc^kO-<8x4yFStJe+`dpDPssP3c=|Hktv{^Xm8djxSoW>W#<@{e{r)5COCOp7946I( zFf^KfpiYX4qU_5k0K&q0!d~SjoC>i z1Z_(y!tMi72p;Z1hGQ@8HSN{(F^&+BRv&-LD1TP93ZrnkOl_!|&^Fro^O_sBlAUwm zpk!Ogk*E}Zc%M+>E1Gj_#^4k4i0p3aa4y{_UbNTCA3ZYHG@R|qI~qVXY*Kc~75H%= z%Ev1l<+qvX7hX7rOLKejP^cafG{t+KK1! zo}Dwpys2(VNuZ2*|Ne)g#a^aZkV}=+n@ztquHC+AgwEN^;cafbxwGQE)IM}Iy zj*V>^z!q+m*ecpau&2)nK{1#NrInf6WS;P-T$wJg0kT>p$huI~ndgx>Slu888eD5p z5A$3R<3L8?zT0}2*VUBx_F#0iwfjrRUdB<=RdPNXOk_iLiFQVe%gp^X6(Fw{W#WK6 zV`om)I+*OmU)sa>+8`!?;I)ecteFoYQ2~ep{arll$bx7ACocm8GS)P2sKavki)KfV zQ?1(QQVH5WxR7G)7BOTqLaHi!?K@WB%|uEKTTd7)$^m7wavn>8jOc*!fZNSwFng8j zDXRUPsu#$%xAbCs{Nb_j71F-f(lgw$o1V;q=5>j z(R|GfU!pWn5P|z9Ce_R^o4E%Y@NRE`m7OE2QYts*+>_VW*!}M|d5l69a*|cxF~OUD zQIWcVBUHsXT&)*jHsC!V|nRd>bi>9URWe)O_N?@wXnWmg&O^eGTHn+*CHf-16iANiR(o46({uk4Fo(li~ literal 0 HcmV?d00001 diff --git a/src/python/evaluation/plots/examples/CODE_STYLE_ratio_histogram.png b/src/python/evaluation/plots/examples/CODE_STYLE_ratio_histogram.png index 6ebce84e9a02194903771ca8000fb919c0f8e82c..e3dde849fe3e6c0e5474efece305031927f83c00 100644 GIT binary patch literal 24012 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 literal 24492 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

HqBzq?|K31Y;xhp%fJY{&r866 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 literal 44576 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 JF6*2Ung9h+NYVfR diff --git a/src/python/evaluation/plots/examples/CYCLOMATIC_COMPLEXITY_line_chart_grouped.png b/src/python/evaluation/plots/examples/CYCLOMATIC_COMPLEXITY_line_chart_grouped.png new file mode 100644 index 0000000000000000000000000000000000000000..044e92c8456bacfe639fe49226c81371a693a79a GIT binary patch literal 43037 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 literal 0 HcmV?d00001