ENH allow overriding labels / display names in plots
- Dominant language
- Python
- Stars
- 326
- Forks
- 74
- Avg merge
- 47m
- Merged PRs (30d)
- 1
Description
Sometimes a specific configuration has a *meaningful* name — matching a paper, an ablation label, a product name — that we'd want to show instead of the computed `Class[param=value]` form. It would be very useful to let a benchmark author give a custom display name to a solver/dataset/objective, either to a whole class or to a specific parametrized configuration, while the tooltip still exposes the real parameters and docstring.
## Key questions
- **Where the customization lives** — a benchmark config entry (e.g. `benchopt.yml`, a `plot_labels: {name: display}` map) and/or a dedicated method/attribute on `ParametrizedNameMixin`.
- **Granularity** — per class, per config (specific parameter values), or a *template* over the parameters.
- **Where it's applied** — probably at the same spot as the short labels, so overrides win uniformly across selectors, legend, table, and matplotlib.
- **Reconcile with `parameter_template`** — `ParametrizedNameMixin` already has a `parameter_template` class attribute (e.g. `parameter_template = 'n={n}'`) that overrides the default `key=value` in `__repr__`, but it changes the *canonical name* (persisted identity), not just the display label. Decide whether to lean on it or add a display-only override that leaves the persisted name untouched, so the two don't diverge confusingly.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing how short labels are generated and applied across selectors, legends, tables, and matplotlib. Inspect benchmark configuration such as benchopt.yml and ParametrizedNameMixin, including its parameter_template attribute. Done means agreeing on the customization location and granularity, applying display names consistently, and keeping tooltip details and persisted identities clear.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100