關(guān)于Echart中動態(tài)刷新對X軸秒級刻度的需求和實現(xiàn)

描述

這是官方DEMO 動態(tài)數(shù)據(jù) + 時間坐標(biāo)軸 上的一個修改 ,可以滿足秒級刷新及刻度需求的使用。

簡單來說就是X軸選擇類目軸,X軸的data傳入一個額外的數(shù)組(例如date),原始的data構(gòu)造成對象(為了tooltip構(gòu)造方便)。動態(tài)更新的時候,date數(shù)組中傳入data對象的第一個值。具體看下面修改過的代碼和運行效果圖。

代碼

function randomData() {
    var now = new Date();
    value = value + Math.random() * 21 - 10;
    return {
        value: [
            [now.getHours(), now.getMinutes(), now.getSeconds()].join(':'),
            Math.round(value)
        ]
    }
}

var data = [];
var date = [];
var value = Math.random() * 1000;
for (var i = 0; i < 1000; i++) {
    data.push(randomData());
    date.push('')
}

option = {
    title: {
        text: '動態(tài)數(shù)據(jù) + 時間坐標(biāo)軸'
    },
    tooltip: {
        trigger: 'axis',
        formatter: function (params) {
            params = params[0];
            return params.value[0] + ' / ' + params.value[1];
        },
        axisPointer: {
            animation: false
        }
    },
    xAxis: {
        type: 'category',
        splitLine: {
            show: false
        },
        data: date
    },
    yAxis: {
        type: 'value',
        boundaryGap: [0, '100%'],
        splitLine: {
            show: false
        }
    },
    series: [{
        name: '模擬數(shù)據(jù)',
        type: 'line',
        showSymbol: false,
        hoverAnimation: false,
        data: data
    }]
};

setInterval(function () {
    var _data = randomData();
    data.shift();
    date.shift();
    data.push(_data);
    date.push(_data.value[0])

    myChart.setOption({
        xAxis: {
          data: date  
        },
        series: [{
            data: data
        }]
    });
}, 1000);

運行圖片

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容