mirror of
https://github.com/sharkdp/hyperfine.git
synced 2026-11-02 17:11:28 +00:00
add: legend modification parameters and output DPI (#758)
* add: legend modification parameters and output DPI This commit adds a CLI parameter to plot_histogram in order to position the legend of the plot on the diagram. It also defines the output DPI for the plot to 600 dpi. Plot_progression gets a CLI paramter to add a custom label and to overwrite the default one. --------- Co-authored-by: dbv <jt@dbv03.linpro.no> Co-authored-by: dbv <spreadcat.github@micronarrativ.org>
This commit is contained in:
1 file changed
+14
-2
@@ -6,6 +6,7 @@ import argparse
|
|||||||
import json
|
import json
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
import matplotlib.font_manager
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description=__doc__)
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
parser.add_argument("file", help="JSON file with benchmark results")
|
parser.add_argument("file", help="JSON file with benchmark results")
|
||||||
@@ -14,6 +15,11 @@ parser.add_argument(
|
|||||||
"--labels", help="Comma-separated list of entries for the plot legend"
|
"--labels", help="Comma-separated list of entries for the plot legend"
|
||||||
)
|
)
|
||||||
parser.add_argument("--bins", help="Number of bins (default: auto)")
|
parser.add_argument("--bins", help="Number of bins (default: auto)")
|
||||||
|
parser.add_argument(
|
||||||
|
"--legend-location", help="Location of the legend on plot (default: upper center)",
|
||||||
|
choices=["upper center", "lower center", "right", "left", "best", "upper left", "upper right", "lower left", "lower right", "center left", "center right", "center"],
|
||||||
|
default="upper center"
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--type", help="Type of histogram (*bar*, barstacked, step, stepfilled)"
|
"--type", help="Type of histogram (*bar*, barstacked, step, stepfilled)"
|
||||||
)
|
)
|
||||||
@@ -47,6 +53,7 @@ t_max = float(args.t_max) if args.t_max else np.max(list(map(np.max, all_times))
|
|||||||
bins = int(args.bins) if args.bins else "auto"
|
bins = int(args.bins) if args.bins else "auto"
|
||||||
histtype = args.type if args.type else "bar"
|
histtype = args.type if args.type else "bar"
|
||||||
|
|
||||||
|
plt.figure(figsize=(10, 5))
|
||||||
plt.hist(
|
plt.hist(
|
||||||
all_times,
|
all_times,
|
||||||
label=labels,
|
label=labels,
|
||||||
@@ -54,7 +61,12 @@ plt.hist(
|
|||||||
histtype=histtype,
|
histtype=histtype,
|
||||||
range=(t_min, t_max),
|
range=(t_min, t_max),
|
||||||
)
|
)
|
||||||
plt.legend(prop={"family": ["Source Code Pro", "Fira Mono", "Courier New"]})
|
plt.legend(
|
||||||
|
loc=args.legend_location,
|
||||||
|
fancybox=True,
|
||||||
|
shadow=True,
|
||||||
|
prop={"size": 7, "family": ["Source Code Pro", "Fira Mono", "Courier New"]}
|
||||||
|
)
|
||||||
|
|
||||||
plt.xlabel("Time [s]")
|
plt.xlabel("Time [s]")
|
||||||
if args.title:
|
if args.title:
|
||||||
@@ -66,6 +78,6 @@ else:
|
|||||||
plt.ylim(0, None)
|
plt.ylim(0, None)
|
||||||
|
|
||||||
if args.output:
|
if args.output:
|
||||||
plt.savefig(args.output)
|
plt.savefig(args.output, dpi=600)
|
||||||
else:
|
else:
|
||||||
plt.show()
|
plt.show()
|
||||||
Reference in new issue
Block a user