Интерактивные графики и диаграммы средствами HTML5 - это следующий уровень визуализации данных. В отличие от статичных графиков, интерактивные решения позволяют пользователям взаимодействовать с данными: фильтровать, масштабировать, наводить курсор для получения дополнительных сведений и менять параметры визуализации.
Кроме этого, исходными источниками для построения графиков могут являтся внешние информационные системы и объекты с соотвествующими API для интерактивного взаимодействия. |
|
Интерактивный график с интерполяцией между точками с возможностью редактирования входных данных
Для ввода произвольных данных используются кроссбраузерные ползунки диапазона на базе CSS и JavaScript решений, для построения графика в выделенной области HTML Canvas используется глобальная библиотека Chart.js. Исходный код реализации виджета можно просмотреть кликнув по ссылке "Показать код".
|
| Входные данные | Интерполированный график с автомасштабированием по вертикали | ||||
|
|
|||||
|
Показать код
|
Интерактивная вертикальная диаграмма с возможностью редактирования входных данных
Здесь также используются кроссбраузерные ползунки на базе кастомных CSS решений, JavaScript и глобальная библиотека Chart.js. Исходный код доступен для просмотра и копирования по ссылке ниже.
|
| Входные данные | Отображение DATA с автомасштабированием по вертикали |
|
|
Показать код
|
Интерактивная круговая диаграмма с возможностью редактирования входных данных
Круговая диаграмма представляет собой круговой статистический график, разделенный на фрагменты для иллюстрации числовых пропорций. На круговой диаграмме длина дуги каждого среза пропорциональна количеству, которое он представляет. Например, сколько зарегистрированных пользователей сейчас имеют статус Online Active, сколько Inactive и сколько пользователей в Offline.
|
| Входные данные | Отображение данных в пропорции (%) | Легенда диаграммы | ||||||||
|
|
|
|||||||||
Показать код
|
Интерактивная эмуляция мониторинга динамических процессов с изменяемой детализацией
Ниже доступны графики эмуляции разных процессов на основе рандомного отклонения от среднего значения с разной детализацией и типом графика отображения данных.
График в виде файла process.jpg можно сохранить на локальном РС кликнув по построенному изображению.
|
| Интервал отсчетов от 4 до 10 с шагом 2 пикселя | Интервал отсчетов от 4 до 10 с шагом 2 пикселя | ||||
| HTML Canvas и JavaScript |
<div id="div-process"><canvas id="process" width="960" height="200" style="border-right:solid 1px #ccc; border-bottom: solid 1px #ccc;"></canvas></div>
<script type='text/javascript'> function process1(){ let canvasContainer = $('#div-process'); canvasContainer.empty().append('<canvas id="process" width="960" height="200" style="border-right:solid 1px #ccc; border-bottom: solid 1px #ccc;"></canvas>'); var canvas = document.getElementById("process"); var ctx = canvas.getContext("2d"); for (var x = 0.5; x < 960; x += 20) { ctx.moveTo(x, 0); ctx.lineTo(x, 200);} for (var y = 0.5; y < 200; y += 20) { ctx.moveTo(0, y); ctx.lineTo(960, y);} ctx.strokeStyle = "#ccc"; ctx.stroke(); var x = 20; var delta_x = parseInt($('#number1').val()); var width = delta_x - 2; ctx.fillStyle = '#008090'; ctx.fillRect(20, 100, width, 20); function graph(){ x = x + delta_x; var height = parseInt(Math.random()*30) + 30; var top = 120 - height; ctx.fillRect(x, top, width, height); if (x >= 940) { clearInterval(intervalId); }} var intervalId = setInterval(graph,30); } </script> |
