Om funksjonen
Formål
Beregner et sett med jevnt fordelte, "pene" tallverdier (0/20/40/60/80/100, ikke 0/17/34/51/68/85) som dekker et gitt min/maks-verdiområde - samme "nice numbers"-algoritme som D3 sin d3.ticks() og de fleste andre diagrambiblioteker bruker for Y-akse-rutenett.
Merk: Utviklet som en del av å hente inspirasjon fra OpenBridge (https://openbridge-storybook.web.app/?path=/docs/bars-and-graphs) sine linje-/areal-/stolpediagrammer, som konsekvent viser et lyst, lesbart rutenett med tallmerkede Y-akse-linjer - noe <lm-chart-line>/<lm-chart-area>/<lm-chart-bar> manglet før denne funksjonen ble lagt til.
Egner seg for
- Å generere Y-akse-rutenettlinjer og -etiketter for et diagram, gitt datasettets faktiske min/maks-verdier.
- Ethvert sted et numerisk verdiområde trenger en lesbar, jevnt delt skala - ikke bare diagramkomponentene.
Egner seg ikke for
- Logaritmiske skalaer - algoritmen forutsetter en lineær skala.
- Kategoriske (ikke-numeriske) akser - se i stedet dataene sine egne etiketter direkte.
Signatur(er)
finnSkalatrinn(min: number, maks: number, onsketAntall?: number) => number[]
| Parameter | Type | Beskrivelse |
|---|---|---|
min | number | Laveste verdi som må dekkes av skalaen. |
maks | number | Høyeste verdi som må dekkes av skalaen. |
onsketAntall (valgfri) | number | Omtrentlig ønsket antall trinn - algoritmen runder til nærmeste pene steglengde, så faktisk antall kan avvike litt. Standard 5. |
Returnerer: Trinnverdier i stigende rekkefølge, alltid minst én.
import {finnSkalatrinn} from "/designsystem/funksjoner/statistikk/finn-skalatrinn/finn-skalatrinn.js";
finnSkalatrinn(0, 87);
// [0, 20, 40, 60, 80, 100]
finnSkalatrinn(-100, 100);
// [-100, -50, 0, 50, 100]
Prøv selv
Rediger uttrykket under - returverdien oppdateres live.
Tilgjengelighet
Ikke relevant i seg selv (ren logikk uten DOM), men styrker tilgjengeligheten til diagramkomponentene som bruker den - et lesbart, tallmerket rutenett gjør det raskere for alle brukere (ikke bare skjermleserbrukere, som uansett har den skjulte datatabellen) å anslå faktiske verdier visuelt.
Referanser
Se også:
../finn-ytterpunkter/index.html - finner høyeste/laveste datapunkt for det synlige tekstsammendraget - denne funksjonen finner i stedet rutenett-trinnene for selve aksen.../../../komponenter/data-visualisering/chart-line/index.html - bruker denne funksjonen til å tegne Y-akse-rutenett og -etiketter.../../../komponenter/data-visualisering/chart-area/index.html - bruker denne funksjonen til å tegne Y-akse-rutenett og -etiketter.../../../komponenter/data-visualisering/chart-bar/index.html - bruker denne funksjonen til å tegne Y-akse-rutenett og -etiketter.
Brukes av:
designsystem/komponenter/data-visualisering/chart-line/designsystem/komponenter/data-visualisering/chart-area/designsystem/komponenter/data-visualisering/chart-bar/
Avhengigheter: Ingen