[英]How to create a stacked chart with cumulative line using Highchart.js
[英]Sync an html5 video with an highchart.js line chart
我有一段一分鍾長的火車行駛視頻和一些關於他的 position、車載加速度計等的數據系列。
我的目標是制作折線圖(使用 Highcharts.js)以每秒 20 點的速度隨視頻動態繪制的那些測量值。 圖表必須隨視頻移動,因此如果用戶 go 返回同一幀的圖表 go,依此類推。
我想知道是否有辦法將事件附加到視頻進度條並每 x 毫秒和/或每次用戶播放/停止視頻時重新繪制圖表
使用 Highcharts 系列的setData
方法連接視頻元素的timeupdate
事件應該就足夠了。
例子:
let currentDataIndex = 0;
const video = document.getElementById("video1");
const chart = Highcharts.chart('container', {
series: [{
// Highcharts mutate original data array, so use a copy
data: data[currentDataIndex].slice()
}]
});
const updateChartData = index => {
chart.series[0].setData(data[index].slice());
currentDataIndex = index;
};
video.addEventListener('timeupdate', e => {
const second = Math.floor(video.currentTime);
if (second !== currentDataIndex) {
updateChartData(second);
}
});
現場演示: http://jsfiddle.net/BlackLabel/8a6yvjs5/
API參考: https://api.highcharts.com/class-reference/Highcharts.Series#setData
文檔:
https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLMediaElement/currentTime
https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLMediaElement/timeupdate_event
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.