Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gauge: enforce min/max values #2125

Closed
adschm opened this issue Jun 4, 2021 · 3 comments
Closed

Gauge: enforce min/max values #2125

adschm opened this issue Jun 4, 2021 · 3 comments

Comments

@adschm
Copy link
Contributor

adschm commented Jun 4, 2021

If I set min/max on gauge ("multi" mode*), and data goes beyond the min/max values set before, the scale is updated accordingly.

I'm looking for a way that min/max are fixed and the scale is not adjusted, so empty arc is shown for "value < min" and full arc is shown for "value > max", but if the value comes back into the earlier min-to-max range, the position would be the same as before.

While I can obviously fake this behavior for the arc by having "max([minbound min([datavalue maxbound]))" as data point, this workaround would also affect the data label, which should display the "correct" value even when without the arc range.

I suspect this could be implement relatively easy by adding a bool "fixedbounds" parameter to the gauge options dict, which would then internally switch between the current mechanism (false) and a mechanism that does some min/max enforcement for the plotted data value similar to my workaround above (true).

* using multi here since this is broken for "single" mode (#2123), but this would obviously be helpful for both modes.

@netil
Copy link
Member

netil commented Jun 10, 2021

@adschm, thanks for the suggestion!
I'll be considering on future release.

@m-gallesio
Copy link

m-gallesio commented Nov 2, 2022

We have ran into this issue today.
It seems the min value is respected but the max value is not.

This seems to be the "offending" code:

// if gauge_max less than max, make max to max value

netil pushed a commit to netil/billboard.js that referenced this issue Jan 22, 2024
Implement enforceMinMax option, which will make data to be
displayed in a range of min/max value even value is out of range

Ref naver#2125
netil pushed a commit to netil/billboard.js that referenced this issue Jan 22, 2024
Implement enforceMinMax option, which will make data to be
displayed in a range of min/max value even value is out of range

Ref naver#2125
@netil netil closed this as completed in c277201 Jan 22, 2024
@adschmu
Copy link

adschmu commented Jan 26, 2024

Thanks for implementing the feature.

Just tested with the nightly build (on "multi" mode): Everything seems to work as expected/desired.

github-actions bot pushed a commit that referenced this issue Feb 13, 2024
# [3.11.0-next.2](3.11.0-next.1...3.11.0-next.2) (2024-02-13)

### Bug Fixes

* **regions:** Fix applying regions class ([7e4fa71](7e4fa71)), closes [#3611](#3611)

### Features

* **arc:** Intent to ship arc.rangeText ([e887baf](e887baf)), closes [#2120](#2120)
* **gauge:** Intent to ship gauge.enforceMinMax ([c277201](c277201)), closes [#2125](#2125)
* **gauge:** Intent to ship gauge.label.ratio ([d4e49ba](d4e49ba)), closes [#3633](#3633)
github-actions bot pushed a commit that referenced this issue Feb 15, 2024
# [3.11.0](3.10.3...3.11.0) (2024-02-15)

### Bug Fixes

* **Axis:** Correct x axis height calculation for autorotated x axis tick texts ([d5b5d09](d5b5d09)), closes [#3584](#3584) [#3585](#3585)
* **axis:** Fix x Axis tick height calculation ([ac26f11](ac26f11)), closes [#3643](#3643)
* **axis:** Fixed x axis tick texts rotation when legend is positioned right ([ed4703e](ed4703e)), closes [#3570](#3570) [#3571](#3571)
* **packages:** Fix build error with moduleResolution:bundler ([9c17eea](9c17eea)), closes [#3541](#3541)
* **radar:** Fix axes texts exclusion on resize ([3a814a5](3a814a5)), closes [#3126](#3126)
* **regions:** Fix applying regions class ([7e4fa71](7e4fa71)), closes [#3611](#3611)
* **tooltip:** Fix tooltip position from interference ([9d28cbb](9d28cbb)), closes [#3575](#3575)
* **tooltip:** Fix wrong tooltip selection on browser scroll change ([#3593](#3593)) ([8f80637](8f80637)), closes [#3592](#3592)
* **zoom:** Fix zoom state on data load ([967207b](967207b)), closes [#3422](#3422)

### Features

* **arc:** Intent to ship arc.rangeText ([e887baf](e887baf)), closes [#2120](#2120)
* **axis:** Add x.tick.text.inner option ([cfc856c](cfc856c)), closes [#3552](#3552)
* **gauge:** Intent to ship gauge.enforceMinMax ([c277201](c277201)), closes [#2125](#2125)
* **gauge:** Intent to ship gauge.label.ratio ([d4e49ba](d4e49ba)), closes [#3633](#3633)
* **legend:** Itent to ship legend.format, legend.tooltip ([aecff2f](aecff2f)), closes [#3533](#3533)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants