Estou escrevendo um código para exibir um gráfico de barras (ou linhas) em nosso software. Tudo está indo bem. O que me deixa perplexo é rotular o eixo Y.
A pessoa que ligou pode me dizer o quão bem eles querem que a escala Y seja rotulada, mas eu pareço estar preso no que exatamente rotulá-los de uma forma "atraente". Não consigo descrever "atraente", e provavelmente você também não, mas sabemos disso quando vemos, certo?
Portanto, se os pontos de dados forem:
15, 234, 140, 65, 90
E o usuário pede 10 rótulos no eixo Y, um pouco de trapaça com papel e lápis chega com:
0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250
Portanto, há 10 ali (sem incluir 0), o último se estende um pouco além do valor mais alto (234 <250) e é um incremento "bom" de 25 cada. Se eles pedissem 8 rótulos, um incremento de 30 teria ficado bem:
0, 30, 60, 90, 120, 150, 180, 210, 240
Nove teria sido complicado. Talvez apenas usar 8 ou 10 e chamá-lo de perto estaria tudo bem. E o que fazer quando alguns dos pontos são negativos?
Posso ver que o Excel resolve esse problema muito bem.
Alguém conhece um algoritmo de uso geral (até mesmo alguma força bruta é aceitável) para resolver isso? Não preciso fazer isso rapidamente, mas deve ficar bem.