FrappeUIPhx.Charts.Scale (frappe_ui_phx v0.3.1)

Copy Markdown View Source

Matemática pura dos gráficos: escalas lineares, "números bonitos" para eixos, paleta de cores do tema e formatação numérica estável para SVG.

Summary

Functions

Cor (variável CSS do tema, então acompanha claro/escuro) da série index.

Mapeia value do intervalo {d0, d1} para {r0, r1} (domínio degenerado vira o início).

Número para atributo SVG: até 2 casas, sem notação científica.

Menor número "bonito" (1, 2, 5 × 10ⁿ) que é ≥ max; mínimo 1.

Famílias de cor da paleta de séries, na ordem de uso.

Quantidade de cores distintas antes de repetir.

Rótulo curto de eixo: 1200 → "1,2 mil", 2500000 → "2,5 mi".

Valores de grade de 0 a nice_max em count intervalos.

Functions

color(index)

@spec color(non_neg_integer()) :: String.t()

Cor (variável CSS do tema, então acompanha claro/escuro) da série index.

linear(value, arg1, arg2)

@spec linear(number(), {number(), number()}, {number(), number()}) :: float()

Mapeia value do intervalo {d0, d1} para {r0, r1} (domínio degenerado vira o início).

n(value)

@spec n(number()) :: String.t()

Número para atributo SVG: até 2 casas, sem notação científica.

nice_max(max)

@spec nice_max(number()) :: number()

Menor número "bonito" (1, 2, 5 × 10ⁿ) que é ≥ max; mínimo 1.

palette()

Famílias de cor da paleta de séries, na ordem de uso.

palette_size()

Quantidade de cores distintas antes de repetir.

short(value)

@spec short(number()) :: String.t()

Rótulo curto de eixo: 1200 → "1,2 mil", 2500000 → "2,5 mi".

ticks(nice_max, count \\ 4)

@spec ticks(number(), pos_integer()) :: [number()]

Valores de grade de 0 a nice_max em count intervalos.