Я хотел бы отображать информацию о времени в реальном времени.Графическая диаграмма в реальном времени
У меня есть файл журнала, содержащий номер 1 и 0. Каждый из них представляет свет. Этот файл обновляется каждую секунду.
Я хотел бы отобразить это как горизонтальную гистограмму.
Этот график будет обновлять каждую секунду с помощью «блоков», представляющих 1сек. Если свет на блоке будет зеленым, а следующий следующий блок останется зеленым, пока он не погаснет. Затем грядущие блоки красные.
В левой части диаграммы новые данные будут отображаться каждую секунду, оставив остальную часть данных справа.
Цвет не должен быть на ВСЕХ диаграммах, но только на соответствующем блоке.
Я нашел о директиве с угловыми диаграммами, но не могу найти способ выполнить то, что хочу. (Да, я использую AngularJS)
Я не могу найти пример в Интернете (Есть ли название для такого рода диаграммы?)
CONTROLLER
$scope.labels = ['A', 'B', 'C', 'D'];
$scope.data = [[59, 80, 81, 56]];
HTML
<canvas id="base" class="chart-horizontal-bar" chart-data="data" chart-labels="labels" ></canvas>
Как использовать штабелируемую гистограмму с другим цветом?
ДУМАТЬ EDIT
библиотека Диаграмма может быть, не самая лучшая идея. Я думал об использовании простой таблицы с предельным числом столбцов. Визуальное обновление в реальном времени будет менее хорошим.
О ChartJS, я не могу найти способ определить цвета стекируемых блоков. Я могу добавить динамически данные, но блок получить случайные цвета
PROGRESS EDIT
HTML
<canvas id="base" class="chart-horizontal-bar" chart-data="data" chart-labels="labels" chart-options="options"></canvas>
<button class="ui fluid button" ng-click="push()">PUSH</button>
CONTROLLER
$scope.labels = ['A', 'B', 'C', 'D'];
$scope.type = 'StackedBar';
$scope.options = {
responsive:true,
animation : false,
scaleShowGridLines : false,
scales: {
xAxes: [{
stacked: true,
}],
yAxes: [{
stacked: true
}]
},
};
$scope.data = [];
$scope.push = function(){
if($scope.data.length >= 10) //Do not show more than 10sec in past
$scope.data.pop();
$scope.data.unshift([1,1,1,1]);
}
На данный момент мой график обновляется каждый раз, когда я нажимаю на b utton (для имитации обновления в реальном времени). Мне просто нужно покрасить новые данные. Есть ли способ нажать объект, содержащий значение (которое всегда равно 1 для 1сек) + цвет?
EDIT: Попытка со столом
В таблице не хорошее решение. Каждая ячейка представляет 1 сек и 1 цвет. Если я хочу отобразить исторический в течение 2 минут, мне нужно 120 ячеек, и я не могу отображать столько ячеек.