Я пишу немного кода для отображения гистограммы (или линии) в нашем программном обеспечении. Все идет хорошо. То, что меня озадачило, - это обозначение оси 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 выглядел бы неплохо: </p>
0, 30, 60, 90, 120, 150, 180, 210, 240
Девять было бы сложно. Может быть, просто использовали 8 или 10 и позвоните достаточно близко, все будет в порядке. А что делать, если некоторые из точек отрицательны?
Я вижу, что Excel прекрасно справляется с этой проблемой.
Кто-нибудь знает алгоритм общего назначения (даже грубая сила в порядке) для решения этой проблемы? Мне не нужно делать это быстро, но это должно выглядеть красиво.