Skip to content

Commit

Permalink
init charts
Browse files Browse the repository at this point in the history
  • Loading branch information
alexgiving committed Jun 1, 2024
1 parent 64e7778 commit d554615
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 11 deletions.
7 changes: 7 additions & 0 deletions report/charts/chart_argument_parser.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from pathlib import Path

from report.argument_parser import ArgumentParser


class ChartArgumentParser(ArgumentParser):
save_path: Path = Path('./data/charts')
48 changes: 48 additions & 0 deletions report/charts/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from collections import defaultdict
import json
from typing import Dict, List

from report.charts.chart_argument_parser import ChartArgumentParser
from report.log_parser import LogParser
from matplotlib import pyplot as plt


def select_metric(all_data: Dict[str, List[Dict[str, float]]], metric: str) -> Dict[str, List[float]]:
data = {}
for block_name, block_metrics in all_data.items():
data[block_name] = [metrics[metric] for metrics in block_metrics]
return data


def main() -> None:
args = ChartArgumentParser(underscores_to_dashes=True).parse_args()
with args.config.open() as file:
json_data = json.load(file)

args.save_path.mkdir(parents=True, exist_ok=True)

parser = LogParser()
data = defaultdict(list)
for block_name, logs_block in json_data['logs'].items():
if block_name == 'LKMeans':
continue
for log_path in logs_block.values():
log_data_dict = parser.parse(log_path)
data[block_name].append(log_data_dict)

for metric in json_data['plot_metrics']:
config_name = json_data['name']
chart_name = args.save_path / f'{config_name}_{metric}.png'
prepared_data = select_metric(data, metric)
figure = plt.figure(figsize=(4,4), dpi=800)
axes = figure.gca()
for line_name, values in prepared_data.items():
axes.plot(values, label=line_name)
axes.legend()
figure.tight_layout()
figure.savefig(chart_name)
plt.close(figure)


if __name__ == '__main__':
main()
18 changes: 7 additions & 11 deletions report/tables/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,6 @@
from report.tables.table_argument_parser import TableArgumentParser


def get_data_from_config(json_data: Dict) -> pd.DataFrame:
data = []
parser = LogParser()
for log_name, log_path in json_data['logs'].items():
log_data_dict = parser.parse(log_path)
log_data_dict = {'log_name': log_name, **log_data_dict}
data.append(log_data_dict)
return data


def main() -> None:
args = TableArgumentParser(underscores_to_dashes=True).parse_args()
with args.config.open() as file:
Expand All @@ -28,7 +18,13 @@ def main() -> None:
args.save_path.mkdir(parents=True, exist_ok=True)
saver = LatexSaver(args.save_path / json_data['name'])

data = get_data_from_config(json_data)
parser = LogParser()
data = []
for logs_block in json_data['logs'].values():
for log_name, log_path in logs_block.items():
log_data_dict = parser.parse(log_path)
log_data_dict = {'log_name': log_name, **log_data_dict}
data.append(log_data_dict)
data_frame = pd.DataFrame(data)

rules = get_highlight_rules()
Expand Down

0 comments on commit d554615

Please sign in to comment.