Известны метрики текущего шрифта, известна область отображения. Задача: "максимально возможное число отображаемых (не перекрывающихся, учитывающих размеры текущего шрифта и т.д.) текстовых значений для данного конкретного диапазона".
То что Вы рассказали довольно просто реализовать, но получается что немного счастья от разбросанных абы-каких значений, напр (0, 1.83, 3.66 и.т.д). Если числа слишком малы (или велики) - придется отображать коэффициент "порядок", писать 0.0025 нет смысла. Также "неперекрывающихся" не очень хорошо, какие-то зазоры между значениями необходимы.
Сначала "выбираем шкалу". Напр диапазон значений [32..40]. Округляем 40 - 32 = 8 в большую сторону, имеем 10. Максимальный текст (пока) "10.0", шаг единица. Считаем сколько влазит в область отображения. Напр не все 8, а меньше. Тогда пробуем (30.0, 32.5, 35.0. 37.5, 40.0). Опять не лезет - пробуем еще меньше значений. Ну и в большую сторону аналогично