mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-06-26 10:54:28 +02:00

- Add option to select commands for display - Use name of data directory as plot title Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
40 lines
1.2 KiB
Python
Executable file
40 lines
1.2 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import os
|
|
|
|
import argparse
|
|
import matplotlib.pyplot as plt
|
|
import numpy as np
|
|
|
|
parser = argparse.ArgumentParser(description='Display performance plots.')
|
|
parser.add_argument('output_dir', help='directory containing the measurement files')
|
|
parser.add_argument('commands', nargs='*', type=str)
|
|
|
|
args = parser.parse_args()
|
|
|
|
output_directory = args.output_dir
|
|
commands = args.commands
|
|
|
|
plt.axes([0.1, 0.1, 0.6, 0.75])
|
|
plt.xlabel("# database entries")
|
|
plt.ylabel("time [s]")
|
|
plt.title(output_directory)
|
|
|
|
for filename in os.listdir(output_directory):
|
|
if filename.endswith(".log"):
|
|
cmd = "-".join(filename.split('-')[1:-1])
|
|
else:
|
|
continue
|
|
|
|
if len(commands) == 0 or cmd in commands:
|
|
try:
|
|
x, y = np.loadtxt(os.path.join(output_directory, filename),
|
|
delimiter='\t',
|
|
usecols=(1, 2),
|
|
unpack=True)
|
|
plt.plot(x, y, label=cmd, marker=".", linestyle='-')
|
|
except ValueError as e:
|
|
print("Invalid file: {} {}".format(filename, e))
|
|
|
|
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', borderaxespad=0., ncol=2)
|
|
plt.show()
|