Как я могу автоматически вычислить масштаб оси и интервалы?

Как предложено @Jithin Scaria в комментариях, работает следующий метод:

(() => { / content / })() Оборачивая функцию в скобках и вызывая ее, TS вычисляет значение и возвращает его.

9
задан Donotalo 3 May 2012 в 10:01
поделиться

2 ответа

Я использовал jQuery flot библиотека графика. Это - открытый исходный код и делает поколение оси/галочки вполне хорошо. Я предложил бы смотреть на, он - код и зажимающий некоторые идеи оттуда.

1
ответ дан 4 December 2019 в 22:31
поделиться

Интервал галочки будет зависящим от Вашей области дисплея. Необходимо будет взять ширину графика (я предполагаю, что время находится на оси X), и ширина строки даты в выбранном шрифте во внимание для предложения хорошего масштаба.

Основной алгоритм пройдет примерно так.

  • Просканируйте список дат для нахождения минимальных и максимальных значений.
  • Разделите ширину графика на ширину строки даты (это может быть сделано однажды с результатом, сохраненным в переменной, если *оба* ширины являются постоянными). Этот шаг будет легче при использовании шрифта фиксированной ширины и формата даты MM-DD-YYYY. При использовании шрифта переменной ширины и формата даты, где Вы обстоятельно объясняете имя месяца, необходимо будет добавить дополнительное дополнение к строке, чтобы удостовериться, что каждая строка даты является той же шириной. Обратите внимание, что я сказал *дополнительный* дополнение. Даже при использовании фиксированного формата даты Вы захотите заполнить его по крайней мере одним пространством, чтобы не толпиться. Я назову это значение 'галочками', потому что это точно, сколько галочек на Вашей оси будет соответствовать на основе ширины Вашего графика.
  • Вычислите, сколько дней между Вашими минимальными и максимальными датами (включительно). Как Вы делаете это будет зависеть, на каком языке Вы используете. Надо надеяться, у Вас есть хорошие реализации Даты и Календаря для возвращений. Я просто назову это значение 'днями'.
  • Вычислите интервал галочки с формулой 'интервал = дни / (галочки - 1)'.
  • Определите, какие дни падают в кредит интервалы путем добавления 'интервала' к минимальной дате, пока Вы не достигаете своей максимальной даты. Снова, это будет зависеть, на каком языке Вы используете.
7
ответ дан 4 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: