craceplot 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. craceplot/__init__.py +60 -0
  2. craceplot/_containers/__init__.py +0 -0
  3. craceplot/_containers/_core.py +1602 -0
  4. craceplot/_containers/_draw.py +104 -0
  5. craceplot/_inst/examples/acotsp/crace-3240078.stdout +838 -0
  6. craceplot/_inst/examples/acotsp/crace.stderr +8 -0
  7. craceplot/_inst/examples/acotsp/crace.test +216 -0
  8. craceplot/_inst/examples/acotsp/crace.train +622 -0
  9. craceplot/_inst/examples/cats200/crace-2814581.stdout +1665 -0
  10. craceplot/_inst/examples/cats200/crace.stderr +10 -0
  11. craceplot/_inst/examples/cats200/crace.test +1010 -0
  12. craceplot/_inst/examples/cats200/crace.train +655 -0
  13. craceplot/_plots/__init__.py +8 -0
  14. craceplot/_plots/_core.py +80 -0
  15. craceplot/_plots/parameters.py +1805 -0
  16. craceplot/_plots/quality.py +1406 -0
  17. craceplot/_scripts/__init__.py +4 -0
  18. craceplot/_scripts/_main.py +132 -0
  19. craceplot/_scripts/_utils.py +66 -0
  20. craceplot/_scripts/main +3 -0
  21. craceplot/_scripts/open_guide +12 -0
  22. craceplot/_settings/_description.py +168 -0
  23. craceplot/_settings/_options.json +299 -0
  24. craceplot/_utils/__init__.py +0 -0
  25. craceplot/_utils/_base.py +196 -0
  26. craceplot/_utils/_const.py +8 -0
  27. craceplot/_utils/_crace.py +42 -0
  28. craceplot/_utils/_format.py +191 -0
  29. craceplot/_vergit.py +2 -0
  30. craceplot/_version.py +24 -0
  31. craceplot/_vignettes/guide.ipynb +18943 -0
  32. craceplot-0.1.0.dist-info/METADATA +369 -0
  33. craceplot-0.1.0.dist-info/RECORD +61 -0
  34. craceplot-0.1.0.dist-info/WHEEL +5 -0
  35. craceplot-0.1.0.dist-info/entry_points.txt +2 -0
  36. craceplot-0.1.0.dist-info/licenses/LICENSE.md +21 -0
  37. craceplot-0.1.0.dist-info/top_level.txt +2 -0
  38. docs/_config.yml +51 -0
  39. docs/_static/css/custom.css +168 -0
  40. docs/_static/js/navbar.js +40 -0
  41. docs/_toc.yml +5 -0
  42. docs/index.md +4 -0
  43. docs/references/404.md +14 -0
  44. docs/references/authors.md +46 -0
  45. docs/references/citiation.bib +17 -0
  46. docs/references/functions/index.md +5 -0
  47. docs/references/functions/param_boxplot.ipynb +19 -0
  48. docs/references/index.md +44 -0
  49. docs/references/license.md +21 -0
  50. docs/references/others/favicon.ico +0 -0
  51. docs/references/others/favicon_io/about.txt +6 -0
  52. docs/references/others/favicon_io/android-chrome-192x192.png +0 -0
  53. docs/references/others/favicon_io/android-chrome-512x512.png +0 -0
  54. docs/references/others/favicon_io/apple-touch-icon.png +0 -0
  55. docs/references/others/favicon_io/favicon-16x16.png +0 -0
  56. docs/references/others/favicon_io/favicon-32x32.png +0 -0
  57. docs/references/others/favicon_io/site.webmanifest +1 -0
  58. docs/references/others/logo.png +0 -0
  59. docs/references/others/logo1.png +0 -0
  60. docs/references/plots/acotsp-parallelcoord-all.png +0 -0
  61. docs/requirements.txt +5 -0
@@ -0,0 +1,4 @@
1
+ # _scripts/__init__.py
2
+
3
+ from craceplot._scripts._main import start_cplot, run
4
+ from craceplot._scripts._utils import cplot_run
@@ -0,0 +1,132 @@
1
+ import os
2
+ import sys
3
+ import re
4
+ import inspect
5
+ import traceback
6
+
7
+ current_file = os.path.normpath(__file__)
8
+ CPLOT_HOME = os.path.dirname(os.path.dirname(os.path.dirname(current_file)))
9
+ if CPLOT_HOME not in map(os.path.abspath, sys.path):
10
+ sys.path.insert(0, os.path.abspath(CPLOT_HOME))
11
+
12
+ from craceplot._containers._core import ParseOptions, Errors as CE
13
+ from craceplot._containers._draw import DrawPlot, load_results
14
+
15
+ def start_cmdline(arguments=None, console: bool=True):
16
+ """
17
+ Function that executes the configuration procedure with arguments from the command line
18
+ """
19
+
20
+ data = None
21
+ scenario = None
22
+ current_dir = os.getcwd()
23
+
24
+ try:
25
+ scenario = ParseOptions.from_input(arguments=arguments, console=console)
26
+
27
+ if scenario.logDir.value is not None:
28
+ data = load_results(options=scenario.options, data_home=scenario.logDir.value)
29
+
30
+ if data:
31
+ if console:
32
+ # check if there is any other options
33
+ any_arg = False
34
+ for o in scenario.options:
35
+ if scenario._get_option(o).long in arguments or scenario._get_option(o).short in arguments:
36
+ if scenario._get_option(o).name != 'logDir':
37
+ any_arg = True
38
+ break
39
+ # if there is only one option logDir, return
40
+ if not any_arg: return data, scenario
41
+ # other cases:
42
+ # - not in console
43
+ # - including other options
44
+ print(f"# Setting working directory: {scenario.logDir.value}\n#")
45
+ if os.path.exists(scenario.logDir.value):
46
+ os.chdir(scenario.logDir.value)
47
+ if scenario.drawMethod.value is not None: DrawPlot(reader=scenario, src_data=data)
48
+ os.chdir(current_dir)
49
+
50
+ if console: return data, scenario
51
+
52
+ except KeyboardInterrupt:
53
+ print()
54
+
55
+ except SystemExit:
56
+ pass
57
+
58
+ except Exception as e:
59
+ if any(isinstance(e, cls) for cls in [x[1] for x in inspect.getmembers(CE, inspect.isclass)]):
60
+ pass
61
+ else:
62
+ print("\nERROR: There was an error while executing craceplot:")
63
+ sys.tracebacklimit = 20
64
+ traceback.print_exc()
65
+ print(e)
66
+
67
+ if not console: sys.exit(1)
68
+
69
+ return
70
+
71
+
72
+ def _parse_args(*args):
73
+ if len(args) == 1:
74
+ args = args[0]
75
+ if isinstance(args, list):
76
+ outs = args
77
+ elif isinstance(args, str):
78
+ outs = re.split(r"[ ,]+", args)
79
+ else:
80
+ outs = list(args)
81
+ return [str(x) for x in outs]
82
+
83
+
84
+ def run(*inputs):
85
+ return start_cplot(*inputs)
86
+
87
+
88
+ def start_cplot(*kargs, arguments: list=None, console: bool=True):
89
+ """
90
+ Allowed to be called: 1. by entry point,
91
+ 2. by crace_mpi
92
+ 3. in python console
93
+ """
94
+ if arguments is not None and kargs:
95
+ raise TypeError(
96
+ "load_options() accepts either positional arguments "
97
+ "or 'arguments=', not both")
98
+ if arguments is not None:
99
+ arguments = _parse_args(arguments)
100
+ elif len(kargs) > 0:
101
+ arguments = _parse_args(*kargs)
102
+
103
+ if not arguments:
104
+ # arguments may be [] (not None)
105
+ arguments = sys.argv[1:] # command line arguments as a list
106
+
107
+ if ('--crace' in arguments) or ('-c' in arguments):
108
+ index = arguments.index('--crace') if '--crace' in arguments else arguments.index('-c')
109
+ try:
110
+ from craceplot._utils._crace import get_crace
111
+ crace_main_file = arguments[index + 1]
112
+ crace = get_crace(crace_main_file)
113
+ print(f"# Loading crace from: {crace_main_file}")
114
+ print(f"# crace version: {crace.__version__}")
115
+ del arguments[index:index + 2]
116
+ except IndexError:
117
+ raise RuntimeError("Please provide the path to crace/scripts/main.py after --crace or -c")
118
+
119
+ if len(arguments) == 0: return
120
+
121
+ data = start_cmdline(arguments, console)
122
+
123
+ if data: return data
124
+
125
+
126
+
127
+ if __name__ == '__main__':
128
+ """
129
+ Allowed to be called only by this file
130
+ """
131
+ from craceplot._scripts._utils import cplot_run
132
+ cplot_run()
@@ -0,0 +1,66 @@
1
+ def cplot_guide():
2
+ import os, sys
3
+ import pathlib
4
+ import webbrowser
5
+ try:
6
+ import craceplot
7
+ dir_cplot = pathlib.Path(craceplot.__file__).resolve().parent
8
+ except:
9
+ dir_cplot = pathlib.Path(__file__).resolve().parent.parent
10
+
11
+ guide = pathlib.Path(os.path.join(dir_cplot, '_vignettes/guide.ipynb'))
12
+
13
+ # not support system without GUI
14
+ if guide.exists():
15
+ print(guide)
16
+ webbrowser.open(guide.as_uri())
17
+ else:
18
+ sys.exit(1)
19
+
20
+ def cplot_examples(destname):
21
+ import sys
22
+ import pathlib
23
+ import platform
24
+ import subprocess
25
+
26
+ try:
27
+ import craceplot
28
+ dir_cplot = pathlib.Path(craceplot.__file__).resolve().parent
29
+ except:
30
+ dir_cplot = pathlib.Path(__file__).resolve().parent.parent
31
+
32
+ if destname in ("which", "where"):
33
+ destpath = pathlib.Path(dir_cplot)
34
+ print(destpath)
35
+ else:
36
+ destpath = pathlib.Path(dir_cplot / '_inst/' / destname)
37
+ print(destpath)
38
+
39
+ # not support system without GUI
40
+ system = platform.system()
41
+ if destpath.exists():
42
+ if system == "Darwin": # macOS
43
+ subprocess.run(["open", destpath])
44
+ elif system == "Windows":
45
+ subprocess.run(["explorer", destpath])
46
+ else: # Linux
47
+ subprocess.run(["xdg-open", destpath])
48
+ else:
49
+ sys.exit(1)
50
+
51
+ def cplot_run():
52
+ import sys
53
+
54
+ from craceplot._scripts._main import start_cplot
55
+
56
+ if len(sys.argv) > 1:
57
+
58
+ if sys.argv[1] == "doc":
59
+ cplot_guide()
60
+ return
61
+
62
+ if sys.argv[1].lower() in ("examples", "templates", "which", "where"):
63
+ cplot_examples(sys.argv[1].lower())
64
+ return
65
+
66
+ start_cplot(arguments=sys.argv[1:], console=False)
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+ DIRCPLOT=$(pip3 show craceplot | grep Location | cut -d ' ' -f2)
3
+ python3 "$DIRCPLOT/craceplot/_main.py" "$@"
@@ -0,0 +1,12 @@
1
+ #!/bin/bash
2
+ if ! DIRCPLOT=$(python3 -c "import crace, pathlib; print(pathlib.Path(crace.__file__).resolve().parent)" 2>/dev/null); then
3
+ DIRCPLOT="$(cd "$(dirname "$0")/.." && pwd)"
4
+ fi
5
+
6
+ FILE="$DIRCPLOT/_vignettes/guide.ipynb"
7
+
8
+ case "$OSTYPE" in
9
+ darwin*) open "$FILE" ;;
10
+ linux*) xdg-open "$FILE" ;;
11
+ *) start "$FILE" ;;
12
+ esac
@@ -0,0 +1,168 @@
1
+ # craceplot/_description.py
2
+
3
+ from datetime import datetime
4
+
5
+ package_name = "craceplot"
6
+ authors = ['Yunshuang Xiao']
7
+ maintainers = ['Yunshuang Xiao']
8
+ maintainers_email = ['yunshuang.xiao@ulb.be']
9
+ contact = 'crace developers'
10
+ contact_email = 'race.autoconfig@gmail.com'
11
+
12
+ description = "craceplot: Visualisation of Data from crace"
13
+ long_description = """
14
+ craceplot: Visualisation of Data from crace
15
+ ==========================================================================
16
+
17
+ craceplot provides a set of functions to create plots to visualize the data from the crace package.
18
+
19
+ The configuration process performed by crace will show at the end of the execution one or more configurations that are the best performing configurations found. This package provides a set of functions that allow to further assess the performance of these configurations and provides support to obtain insights about the details of the configuration process.
20
+ """
21
+
22
+ url = "https://race-autoconfig.github.io/craceplot/"
23
+ url_home = url
24
+ url_source = "https://github.com/race-autoconfig/craceplot/"
25
+ url_tracker = "https://github.com/race-autoconfig/craceplot/issues"
26
+ urls = {
27
+ 'Homepage': url_home,
28
+ 'Source': url_source,
29
+ 'Tracker': url_tracker,
30
+ }
31
+
32
+ _year = datetime.now().year
33
+ copyright = (
34
+ f"Copyright (c) 2026-{_year} crace developers"
35
+ if _year > 2026
36
+ else "Copyright (c) 2026 crace developers"
37
+ )
38
+
39
+ license = f"""
40
+ This is free software: you can redistribute it and/or modify it under the terms of the MIT License as published by the Free Software Foundation.
41
+
42
+ This is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MIT License for more details.
43
+
44
+ craceplot builds as an additional tool for the crace package:
45
+ crace: Continuous Racing for Automatic Algorithm Configuration
46
+ {copyright}
47
+ """
48
+
49
+ citiation = """
50
+ To cite package 'craceplot' in publications, an appropriate citation is
51
+
52
+ Yunshuang Xiao, Leslie Pérez Cáceres, Manuel López-Ibáñez, and Thomas Stützle. 2023. Algorithm Configuration via Continuously Racing: Preliminary Results. In Proceedings of the Companion Conference on Genetic and Evolutionary Computation (GECCO '23 Companion). Association for Computing Machinery, New York, NY, USA, 1744-1752. https://doi.org/10.1145/3583133.3596408
53
+
54
+ A BibTeX entry for LaTeX users is
55
+
56
+ @inproceedings{10.1145/3583133.3596408,
57
+ title = {Algorithm Configuration via Continuously Racing: Preliminary Results},
58
+ author = {Xiao, Yunshuang and Pérez Cáceres, Leslie and López-Ibáñez, Manuel and Stützle, Thomas},
59
+ booktitle = {Proceedings of the Companion Conference on Genetic and Evolutionary Computation},
60
+ pages = {1744-1752},
61
+ year = {2023},
62
+ }
63
+ """
64
+
65
+ _VERSION = "0.1.0"
66
+ update_logs = """
67
+
68
+ The first release of craceplot, version 0.1.0.
69
+
70
+ """
71
+
72
+
73
+ def __getattr__(name: str):
74
+ if name == "version":
75
+ ver = _get_version()
76
+ globals()["version"] = ver
77
+ return ver
78
+ raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
79
+
80
+
81
+
82
+ def _get_version():
83
+ """
84
+ read version information from
85
+ 1. _version.py generated by setuptools_scm
86
+ 2. _vergit.py formated using git archive
87
+ * must set .gitattributes (crace/_vergit.py export-subst) in advanve
88
+ 3. .git/HEAD and .git/<ref> if src includes .git directory
89
+ 4. check the latest modification date of all src files
90
+ 0. fallback to _VERSION
91
+ """
92
+ import os
93
+ import inspect
94
+ from pathlib import Path
95
+
96
+ try:
97
+ current_dir = Path(__file__).resolve().parent.parent
98
+ except NameError:
99
+ caller_file = inspect.stack()[1].filename
100
+ current_dir = Path(caller_file).resolve().parent.parent
101
+
102
+ dest_ver = current_dir / "_version.py"
103
+ dest_git = current_dir / "_vergit.py"
104
+ dest_git_dir = current_dir.parent / ".git"
105
+
106
+
107
+ try:
108
+ if os.path.exists(dest_ver):
109
+ d = {}
110
+ with open(dest_ver) as f:
111
+ exec(f.read(), d)
112
+ return d.get("version", d.get("__version__", _VERSION))
113
+ except Exception:
114
+ pass
115
+
116
+ try:
117
+ import re
118
+ if os.path.exists(dest_git):
119
+ d = {}
120
+ with open(dest_git) as f:
121
+ exec(f.read(), d)
122
+ ver = d.get("version", d.get("__version__", _VERSION))
123
+ match = re.search(r"tag:\s*([^,\)]+)", ver)
124
+ if match: return match.group(1)
125
+ except Exception:
126
+ pass
127
+
128
+ try:
129
+ commit = None
130
+ if os.path.exists(dest_git_dir):
131
+ head = (dest_git_dir / "HEAD").read_text().strip()
132
+ packed_tag = dest_git_dir / "packed-refs"
133
+
134
+ if head.startswith("ref:"):
135
+ ref = head.split(" ", 1)[1]
136
+ try:
137
+ commit = (dest_git_dir / ref).read_text().strip()[:7]
138
+ except Exception:
139
+ for t in packed_tag.read_text().splitlines():
140
+ if t.startswith("#"): continue
141
+ s, r = t.split(" ", 1)
142
+ if r.strip() == ref:
143
+ commit = s[:7]
144
+ else:
145
+ commit = head[:7]
146
+
147
+ if commit: return commit
148
+
149
+ except Exception:
150
+ pass
151
+
152
+ ignore_files = {".git",
153
+ "__pycache__",
154
+ "build",
155
+ "dist",
156
+ }
157
+ try:
158
+ latest = 0
159
+ for root, dirs, files in os.walk(current_dir.parent):
160
+ dirs[:] = [ d for d in dirs if d not in ignore_files]
161
+ for f in files:
162
+ p = Path(root) / f
163
+ latest = max(latest, os.path.getmtime(p))
164
+ return _VERSION + ' ' + datetime.fromtimestamp(latest).strftime("%b.%d.%Y")
165
+ except Exception:
166
+ pass
167
+
168
+ return _VERSION
@@ -0,0 +1,299 @@
1
+ [
2
+ {
3
+ "name": ".help",
4
+ "type": "e",
5
+ "short": "-h",
6
+ "long": "--help",
7
+ "default": null,
8
+ "section": "Utility options",
9
+ "critical": 1,
10
+ "description": "Show this help.",
11
+ "vignettes": "Show the list of command-line options of \u001b[1mcraceplot\u001b[0m"
12
+ },
13
+ {
14
+ "name": ".man",
15
+ "type": "s",
16
+ "long": "--man",
17
+ "short": "-m",
18
+ "default": null,
19
+ "domain": null,
20
+ "section": "Utility options",
21
+ "critical": 1,
22
+ "description": "Show details of the selected option.",
23
+ "vignettes": "Show details of the selected option. call with \u001b[1m--man [option]\u001b[0m"
24
+ },
25
+ {
26
+ "name": ".version",
27
+ "type": "e",
28
+ "short": "-v",
29
+ "long": "--version",
30
+ "default": null,
31
+ "section": "Utility options",
32
+ "critical": 1,
33
+ "description": "Show the version of crace-plot.",
34
+ "vignettes": "Show the version of \u001b[1mcraceplot\u001b[0m."
35
+ },
36
+ {
37
+ "name": ".doc",
38
+ "type": "e",
39
+ "short": "",
40
+ "long": "doc",
41
+ "default": null,
42
+ "section": "Utility options",
43
+ "critical": -1,
44
+ "description": "Open the user guide. This command must be the first argument.",
45
+ "vignettes": "Open the user guide of crace. This command must be the first argument."
46
+ },
47
+ {
48
+ "name": ".examples",
49
+ "type": "e",
50
+ "short": "",
51
+ "long": "examples",
52
+ "default": null,
53
+ "section": "Utility options",
54
+ "critical": -1,
55
+ "description": "Open examples folder. This command must be the first argument.",
56
+ "vignettes": "Open examples folder. This command must be the first argument."
57
+ },
58
+ {
59
+ "name": ".templates",
60
+ "type": "e",
61
+ "short": "",
62
+ "long": "templates",
63
+ "default": null,
64
+ "section": "Utility options",
65
+ "critical": -1,
66
+ "description": "Open templates folder. This command must be the first argument.",
67
+ "vignettes": "Open templates folder. This command must be the first argument."
68
+ },
69
+ {
70
+ "name": ".which",
71
+ "type": "e",
72
+ "short": "",
73
+ "long": "which",
74
+ "default": null,
75
+ "section": "Utility options",
76
+ "critical": -1,
77
+ "description": "Open crace root folder. This command must be the first argument.",
78
+ "vignettes": "Open crace root folder. This command must be the first argument."
79
+ },
80
+ {
81
+ "name": ".where",
82
+ "type": "e",
83
+ "short": "",
84
+ "long": "where",
85
+ "default": null,
86
+ "section": "Utility options",
87
+ "critical": -1,
88
+ "description": "Open crace root folder. This command must be the first argument.",
89
+ "vignettes": "Open crace root folder. This command must be the first argument."
90
+ },
91
+ {
92
+ "name": "logDir",
93
+ "type": "p",
94
+ "short": "-l",
95
+ "long": "--log-dir",
96
+ "default": ".\/race_log",
97
+ "section": "General options",
98
+ "critical": 0,
99
+ "description": "Directory where the results are from.",
100
+ "vignettes": "Directory where the results are from. The default log directory is the current folder.\\begin{xwarningbox}The execution directory must exist before executing \u001b[1mcraceplot\u001b[0m, it will not be created automatically.\\end{xwarningbox}"
101
+ },
102
+ {
103
+ "name": "outDir",
104
+ "type": "p",
105
+ "short": "-o",
106
+ "long": "--out-dir",
107
+ "default": ".\/",
108
+ "section": "General options",
109
+ "critical": 0,
110
+ "description": "Directory where the output files will be storaged.",
111
+ "vignettes": "Directory where the craceplot outputs will be storaged. The default output directory is the current folder. \\begin{xwarningbox}This directory can be created automatically when executing \u001b[1mcraceplot\u001b[0m. \\end{xwarningbox}"
112
+ },
113
+ {
114
+ "name": "title",
115
+ "type": "s",
116
+ "short": "-t",
117
+ "long": "--title",
118
+ "default": null,
119
+ "section":"General options",
120
+ "critical": 0,
121
+ "description": "The title of the output plot which would be shown in plot.",
122
+ "vignettes": "The title of the output plot which would be shown in plot. The default value of this option depends on the \u001b[4mlogDir\u001b[0m and the \u001b[4mdrawMethod\u001b[0m. This option is only avaliable when \u001b[4mlogDir\u001b[0m and \u001b[4mdrawMethod\u001b[0m are not None."
123
+ },
124
+ {
125
+ "name": "fileName",
126
+ "type": "s",
127
+ "short": "-f",
128
+ "long": "--file-name",
129
+ "default": null,
130
+ "section":"General options",
131
+ "critical": 0,
132
+ "description": "The name of the output plot file.",
133
+ "vignettes": "The name of the output plot file. The default value of this option is \u001b[1mcurrent time\u001b[0m. This option is only avaliable when \u001b[4mlogDir\u001b[0m and \u001b[4mdrawMethod\u001b[0m are not None."
134
+ },
135
+ {
136
+ "name": "drawMethod",
137
+ "type": "s",
138
+ "short": "-dm",
139
+ "long": "--draw-method",
140
+ "default": null,
141
+ "domain": "(boxplot, violinplot, parallelcoord, parallelcat, sunburst, pairplot, histplot, jointplot, heatmap)",
142
+ "section": "Plot options",
143
+ "critical": 0,
144
+ "description": "The type of plot for the crace results.",
145
+ "vignettes": "The type of plot for the \u001b[1mCrace\u001b[0m results. If this option is not null, \u001b[4mlogDir\u001b[0m must to be provided. When one method is selected, the correspoding option must be True. "
146
+ },
147
+ {
148
+ "name": "dataType",
149
+ "type": "s",
150
+ "short": "-dt",
151
+ "long": "--data-type",
152
+ "default": null,
153
+ "domain": "(experiments, quality, time, configurations, parameters)",
154
+ "section": "Plot options",
155
+ "critical": 0,
156
+ "description": "The origin of data used for drawing plot(s).",
157
+ "vignettes": "The origin of the data used for drawing plot(s). \u001b[1mperformance\u001b[0m: the performance of configurations from experiment(s), the parameters of configuration(s) from one crace run and the performance of configurations from one crace run."
158
+ },
159
+ {
160
+ "name": "numConfigurations",
161
+ "type": "s",
162
+ "short": "-nc",
163
+ "long": "--num-configurations",
164
+ "default": null,
165
+ "domain": "(all, final, elites, else)",
166
+ "section": "Plot options",
167
+ "critical": 0,
168
+ "description": "The number of configurations used to draw plot.",
169
+ "vignettes": "The number of configurations used to draw plot: \n\telites: all elitist configurations selected in slice. \n\tfinal: the final best configurations returned by crace. \n\tall: all elite configurations selected in slice. "
170
+ },
171
+ {
172
+ "name": "selConfigurations",
173
+ "type": "l",
174
+ "short": "-sc",
175
+ "long": "--select-configurations",
176
+ "default": null,
177
+ "domain": null,
178
+ "section": "Plot options",
179
+ "critical": 0,
180
+ "description": "The seleceted configurations used to draw plot.",
181
+ "vignettes": "The selected of configurations used to draw plot, which is avaliable only when \u001b[1melse\u001b[0m is selected for \u001b[4mnumConfigurations\u001b[0m."
182
+ },
183
+ {
184
+ "name": "slice",
185
+ "type": "u",
186
+ "short": "-sl",
187
+ "long": "--slice",
188
+ "default": null,
189
+ "domain": "Union[Literal['budget','b','experiment','e','exp','time','t','T'], bool, None]",
190
+ "section": "Plot options",
191
+ "critical": 0,
192
+ "description": "Split slice based on the default or budgets.",
193
+ "vignettes": "Split \u001b[1mslice\u001b[0m based on the default that is related to model updating, or budget that could be the number of executions or runtime. \nBy default, it's None, which means not to split the information when plotting."
194
+ },
195
+ {
196
+ "name": "split",
197
+ "type": "u",
198
+ "short": "-sp",
199
+ "long": "--split",
200
+ "default": null,
201
+ "domain": "Union[list[int], list[float], None]",
202
+ "section": "Plot options",
203
+ "critical": 0,
204
+ "description": "Addtional option for \u001b[1mslice\u001b[0m.",
205
+ "vignettes": "Addtional option used for \u001b[1mslice\u001b[0m. Use a list of integer values to select specific slices splited based on model updating, which is the default split method in crace, and a list of numbers to select specific slices splited based on budget. For the latter case, this list is used to partition the budget on a logarithmic scale."
206
+ },
207
+ {
208
+ "name": "source",
209
+ "type": "s",
210
+ "short": "-so",
211
+ "long": "--source",
212
+ "default": null,
213
+ "domain": "(test, training)",
214
+ "section": "Plot options",
215
+ "critical": 0,
216
+ "description": "The type of results from provided Crace, training or testing.",
217
+ "vignettes": "The type of configurations from provided Crace results. \\begin{itemize}\\item[] \u001b[1mtest\u001b[0m: select configurations in the test part.\\item[] \u001b[1mtraining\u001b[0m: select configurations in the training part.\\end{itemize}"
218
+
219
+ },
220
+ {
221
+ "name": "keyParameter",
222
+ "type": "s",
223
+ "short": "-kp",
224
+ "long": "--key-parameter",
225
+ "default": null,
226
+ "section": "Plot options",
227
+ "critical": 0,
228
+ "description": "This parameter is selected to be the key variable when drawing parallelcoord, pairplot.",
229
+ "vignettes": "This parameter is selected to be the key variable shown in plot \u001b[1mparallelcoord\u001b[0m or \u001b[1mpairplot\u001b[0m. For example: if one parameter is provided as the key variable for \u001b[1mparallelplot\u001b[0m, the plot will be grouped by this parameter."
230
+ },
231
+ {
232
+ "name": "multiParameters",
233
+ "type": "l",
234
+ "short": "-mp",
235
+ "long": "--multi-parameters",
236
+ "domain":null,
237
+ "default": null,
238
+ "section": "Plot options",
239
+ "critical": 0,
240
+ "description": "Multiple parameters provided to draw plot like scatter matrix.",
241
+ "vignettes": "Multiple parameters provided to draw plot like scatter matrix for the provided Crace results."
242
+ },
243
+ {
244
+ "name": "dpi",
245
+ "type": "i",
246
+ "short": "-dpi",
247
+ "long": "--dpi",
248
+ "default": 800,
249
+ "domain": "(50,2000)",
250
+ "section": "Plot options",
251
+ "critical": 1,
252
+ "description": "The parameter dpi used for saving plot.",
253
+ "vignettes": "When method used to draw a plot will export a plot file, this parameter will be added to control the dpi quality of the exported plot."
254
+ },
255
+ {
256
+ "name": "showfliers",
257
+ "type": "b",
258
+ "short": "-sf",
259
+ "long": "--showfliers",
260
+ "default": 0,
261
+ "critical": 1,
262
+ "section": "Plot options",
263
+ "description": "The parameter showfliers used for saving plot.",
264
+ "vignettes": "Enable\/disable showfliers when drawing the plot."
265
+ },
266
+ {
267
+ "name": "showmeans",
268
+ "type": "b",
269
+ "short": "-sm",
270
+ "long": "--showmeans",
271
+ "default": 0,
272
+ "section": "Plot options",
273
+ "critical": 1,
274
+ "description": "The parameter showmeans used for saving plot.",
275
+ "vignettes": "Enable\/disable showmeans when drawing the plot."
276
+ },
277
+ {
278
+ "name": "showscale",
279
+ "type": "b",
280
+ "short": "-ss",
281
+ "long": "--showscale",
282
+ "default": 0,
283
+ "section": "Plot options",
284
+ "critical": 1,
285
+ "description": "The parameter showscale used for saving plot.",
286
+ "vignettes": "Enable\/disable showscale when drawing the plot especially for \u001b[1mparallelcoord\u001b[0m."
287
+ },
288
+ {
289
+ "name": "statisticalTest",
290
+ "type": "b",
291
+ "short": "-st",
292
+ "long": "--stest",
293
+ "default": 0,
294
+ "section": "Plot options",
295
+ "critical": 0,
296
+ "description": "Add p-values for plots or not.",
297
+ "vignettes": "Enable\/disable add p-values when drawing the plot."
298
+ }
299
+ ]