Как получить метки Dojox.
-
24-10-2019 - |
Вопрос
Я пытаюсь использовать Dojox.Charting для вывода простого графика ежемесячных данных.
На данный момент я хочу, чтобы он отображался по одному пункту в день в каждом месяце, в течение года. Это у меня есть.
Проблема с этим: Я не могу найти способ добавить метки диаграммы на каждый месяц.
Я хочу «январь» в 0, февраль »в 31,« март »в 59 и так далее.
Насколько я могу судить, Dojox.Charting поддерживает только наличие ярлыков на регулярных значениях, например. 30, 60, 90 и так далее.
Есть ли какой -нибудь способ, который я могу легко сделать, или требуется код Dojo?
Пожалуйста, смотрите этот jsfiddle, например: http://jsfiddle.net/svjrz/
Решение
Dojox.Charting еще не поддерживает время времени.
Когда мне нужно представить нерегулярные данные (например, ежемесячно), обычно я интерполирую ежедневные данные, чтобы представлять в ежемесячном масштабе с обычными клещами (январь, февраль и т. Д.) В качестве диаграммы линии/области (вы можете попробовать сплайны там). И я переключаюсь на еженедельный/ежедневный обзор, когда пользователь тренируется.
Да, это больше работы, но результат - именно то, что я хочу, а не «что доступно».
Другие советы
Я предоставил возможное решение В этом посте.
Основанная на временной диаграмме требуется непрерывные данные.
Вам нужно будет генерировать полную серию значений даты для оси x в SQL или PHP. Я использую трюк MySQL календарного таблицы с одним полем даты и процедурой, которая заполняет его всеми датами в диапазоне. JavaScript может преобразовать даты ISO напрямую.
Ваши разбросанные данные могут затем быть выведены в виде смежного времени, основанного на времени, используя:
SELECT DISTINCT(t0.datefield) AS Date, SUM(t1.sales) AS Sales FROM T_Sales AS t1 RIGHT JOIN T_Cal AS t0 ON t0.datefield = DATE(t1.saledate) WHERE t0.datefield >= DATE(NOW() - INTERVAL 6 MONTH) AND t0.datefield <= DATE(NOW())