Как нарисовать график Chart.js, чтобы по оси X стояли только часы, но данные отображались поминутно?
Имеется API, которое возвращает количество пользователей онлайн в таком формате:
|
1 |
const data = [ ['2022-05-07 13:45:00', 14], ['2022-05-07 13:47:00', 13], ['2022-05-07 13:49:00', 12], ['2022-05-07 13:51:00', 10], ['2022-05-07 13:53:00', 8], ['2022-05-07 13:54:00', 18], ['2022-05-07 16:34:00', 9], ['2022-05-07 17:15:00', 18] ]; |
Хочу отобразить на графике статистику, но мне не надо на оси X писать каждую минуту, хочется чтобы только часы отображались, но при этом сам график отображал изменения не только по часам, но и промежуточные значения. Попробовал следующий код:
|
1 |
var chartData = []; data.forEach(item => { var date = new Date(item[0]) chartData.push({ x: date, y: item[1] }) }) var ctx = document.getElementById('myChart'); const chart = new Chart(ctx, { type: 'line', data: { datasets: [{ data: chartData }] }, options: { scales: { x: { type: 'time', time: { unit: 'hour', displayFormats: { hour: 'hh' } } } } } }); |
Но при таком коде график растягивается сильно и не влезает на экран, явно что-то не так. Подскажите, как реализовать такой график? Или может использовать вообще другую библиотеку для этого?
Дополнительно:
Содержание
Выложи рабочий пример на jsfiddle посмотрим что не так
Ответы:
Я бы взял ваши даные, закинул в excel, посмотрел бы как могут выглядеть графики потом подгонял, может ваши данные надо сократить и потом только отображать
- Данные в sqlite сейчас. Сокращать ничего не надо, нужна подробная статистика
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для того чтобы нарисовать график с библиотекой Chart.js, где по оси X будут отображаться только часы, но данные будут отображаться поминутно, мы можем воспользоваться следующим подходом.
Сначала необходимо создать массив данных, где каждый элемент будет содержать время и соответствующее значение. Например, для данных за один час, массив может выглядеть примерно так:
Затем мы можем настроить наш график, указав тип графика (например, 'line'), данные, опции и метки для оси X, чтобы отображать только часы. Пример кода для создания графика:
В данном примере мы используем функцию обратного вызова в опциях графика, чтобы отобразить только часы на оси X. Таким образом, мы можем достичь желаемого результата - отображение данных поминутно, но метки по оси X будут представлены только часами.
Надеюсь, данное объяснение поможет вам нарисовать график с библиотекой Chart.js, удовлетворяющий вашим требованиям. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.
Для того чтобы нарисовать график с библиотекой Chart.js, где по оси X будут отображаться только часы, а данные будут отображаться поминутно, следует использовать библиотеку Moment.js для работы с датами и временем.
Ниже приведен пример кода на языке PHP, который демонстрирует создание графика с такими требованиями:
В этом примере мы создаем график с одним набором данных, где по оси X отображаются только часы в формате "HH:mm", а данные отображаются каждую минуту. Мы используем Moment.js для работы с временем и Chart.js для создания графика.
Таким образом, вы можете использовать данный код в своем проекте для создания графика с требуемыми характеристиками.