Я пишу немного кода для отображения графика (или строки) в нашем программном обеспечении. Все идет хорошо. То, что меня озадачило, обозначает обозначение оси Y.
Вызывающий может рассказать мне, насколько точно они хотят присвоить шкалу Y, но я, похоже, зациклен на том, что обозначать их "привлекательным" способом. Я не могу описать "привлекательный", и, вероятно, вы тоже не можете, но мы это знаем, когда видим это, верно?
Итак, если точки данных:
15, 234, 140, 65, 90
И пользователь запрашивает 10 меток на оси Y, немного оторвавшись бумагой и карандашом:
0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250
Итак, там 10 (не включая 0), последний из них выходит за пределы самого высокого значения (234 < 250), и это "хороший" приращение по 25 каждый. Если бы они попросили 8 меток, прирост в 30 выглядел бы неплохо:
0, 30, 60, 90, 120, 150, 180, 210, 240
Девять были бы сложными. Может быть, просто использовал 8 или 10 и назвал его достаточно близко, было бы хорошо. И что делать, когда некоторые из отрицательных точек?
Я вижу, что Excel хорошо справляется с этой проблемой.
Кто-нибудь знает универсальный алгоритм (даже некоторые грубые силы в порядке) для решения этого? Мне не нужно делать это быстро, но это должно выглядеть хорошо.