echarts中x轴动态刷新,如何实现?

半途流浪 2017-03-20 08:35:11
特别是series与xAxis中的data数据怎么写、如何动态刷新。看了echarts中的例子,但接触不多,这部分实在不太如何动态刷新实在不太会写,十分感谢。
...全文
2772 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
var base = +new Date(2014, 9, 3); //后台传递开始 var oneDay = 24 * 3600 * 1000; 这两行代码具体什么含义?起什么作用?
当作看不见 2017-03-20
  • 打赏
  • 举报
回复

//一个定时器,循环用
setInterval(function () {
// 对series 里面的data 做修改 , 添加 5个值 ,移除五个 . 我们通常只用移除一个,添加一个的做法.
    for (var i = 0; i < 5; i++) {
        data.shift();
        data.push(randomData());
    }
//上面改变了数据 ,这里重新setIOption 一下 就可以了 ,步骤循环 .. 
    myChart.setOption({
        series: [{
            data: data
        }]
    });
}, 1000);
半途流浪 2017-03-20
  • 打赏
  • 举报
回复

var series=[];
    for(var i = 0;i<json.data.length;i++){
        series.push({
            name: arr_name[i],
            type: 'line',
            stack: '总量',
            data: arr_sum_long_new[i]
        });
    }

    //
    series: series
for循环写数据吗但是X轴刻度如何控制呢
半途流浪 2017-03-20
  • 打赏
  • 举报
回复
引用 3 楼 qq_29594393 的回复:
http://echarts.baidu.com/demo.html#dynamic-data2 官方动态刷新的实例
这个实例我看过了 没有看懂他是怎么控制X轴刻度的
当作看不见 2017-03-20
  • 打赏
  • 举报
回复
http://echarts.baidu.com/demo.html#dynamic-data2 官方动态刷新的实例
半途流浪 2017-03-20
  • 打赏
  • 举报
回复
引用 1 楼 xuyunfei_2012 的回复:
动态刷新可以重新调用画图函数实现,series中的数据格式,看你要画什么类型的图
折线图的,能给个小例子我看一下吗?
徐云飞-web 2017-03-20
  • 打赏
  • 举报
回复
动态刷新可以重新调用画图函数实现,series中的数据格式,看你要画什么类型的图
当作看不见 2017-03-20
  • 打赏
  • 举报
回复
不再继续刷新,这个实现 ,你上面的代码里有啊 ,就是shift ,这个函数的意思就是移除数组的第一个元素 ,这里应该是判断是否移除了.然后再添加的的意思.. 你可以这样想,如果没有了元素,(没有更新的数据了 ),那就不执行shift() data 这个数组没有发生改变的话,图形也不会有任何变化
半途流浪 2017-03-20
  • 打赏
  • 举报
回复
引用 6 楼 qq_29594393 的回复:

//一个定时器,循环用
setInterval(function () {
// 对series 里面的data 做修改 , 添加 5个值 ,移除五个 . 我们通常只用移除一个,添加一个的做法.
    for (var i = 0; i < 5; i++) {
        data.shift();
        data.push(randomData());
    }
//上面改变了数据 ,这里重新setIOption 一下 就可以了 ,步骤循环 .. 
    myChart.setOption({
        series: [{
            data: data
        }]
    });
}, 1000);
十分感谢;

var base = +new Date(2014, 9, 3);
//后台传递开始
var oneDay = 24 * 3600 * 1000;
var date = [];
var num = 0;

var data = [5,5,6,9,8,7,8,9,5,4,5];//实际运用时这个数据通过后台传递
//如何做到该数组数据结束后,折线图只显示最后的数据,而不再继续刷新,我考虑用num做比较,但是没能实现。
var now = new Date(base);

function addData(shift) {
//shift做参数 是什么意思呢?
    now = [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/');
    date.push(now);
    data.push(data[data.length]);
    if (shift) {
        date.shift();
        data.shift();
    }

    now = new Date(+new Date(now) + oneDay);
}

for (var i = 1; i <= 6; i++) {
    mum = num + 1;
    addData();
}

option = {
    xAxis: {
        type: 'category',
        boundaryGap: false,
        data: date
    },
    yAxis: {
        boundaryGap: [0, '50%'],
        type: 'value'
    },
    series: [
        {
            name:'成交',
            type:'line',
            smooth:true,
            symbol: 'none',
            stack: 'a',
            areaStyle: {
                normal: {}
            },
            data: data
        }
    ]
};

setInterval(function () {
    addData(true);
    myChart.setOption({
        xAxis: {
            data: date
        },
        series: [{
            name:'成交',
            data: data
        }]
    });
}, 500);

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧