Skip to content

Commit a624f60

Browse files
committed
Rolling average
1 parent 07e3b22 commit a624f60

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/parse_breakdown_results.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
from argparse import ArgumentParser
33
from pathlib import Path
44
from typing import List, Optional
5+
import matplotlib.pyplot as plt
6+
import pandas as pd
57

68

79
def get_arg_parser() -> ArgumentParser:
@@ -10,6 +12,7 @@ def get_arg_parser() -> ArgumentParser:
1012
parser.add_argument("--title")
1113
parser.add_argument("--size", nargs=2, type=float)
1214
parser.add_argument("--save_dir", "--save", type=Path)
15+
parser.add_argument("--rolling", "-r", type=int)
1316
return parser
1417

1518

@@ -24,20 +27,19 @@ def read_data(input_file: Path):
2427
return data
2528

2629

27-
def plot(data, title=None, size=None):
28-
import matplotlib.pyplot as plt
29-
30+
def plot(data, title=None, size=None, rolling=None):
3031
fig = plt.figure(figsize=size)
3132
ax = fig.add_subplot()
3233

3334
cmap = plt.get_cmap("tab20").colors
3435
cmap = cmap[::2] + cmap[1::2]
3536

3637
for i, dat in enumerate(data):
37-
latency_data = dat["Latency (generate breakdown)"]
38+
latency_data = pd.Series({int(k): v * 1000 for k, v in dat["Latency (generate breakdown)"].items()})
39+
if rolling is not None:
40+
latency_data = latency_data.rolling(rolling, center=True, min_periods=1).mean()
3841
ax.plot(
39-
[int(k) for k in latency_data.keys()],
40-
[v * 1000 for v in latency_data.values()],
42+
latency_data,
4143
label=dat["Setting"],
4244
linewidth=1,
4345
color=cmap[i],
@@ -67,7 +69,7 @@ def main(argv: Optional[List[str]] = None) -> None:
6769
except ValueError:
6870
title = dirname
6971

70-
fig = plot(data, title, args.size)
72+
fig = plot(data, title, args.size, args.rolling)
7173
fig.show()
7274
if args.save_dir:
7375
save_path = (args.save_dir / dirname).with_suffix(".jpg")

0 commit comments

Comments
 (0)