Echats折线图原数据基础上动态刷新

简介:
鄙人是对大数据有着浓厚兴趣的小草根码农,大数据少不了的就是数据可视化,最近研究了一下如何动态实时刷新Echats的图表,查了很多资料,并进入的Echats的官网,直接copy人家的动态图表但是不知道为啥什么,放在自己的电脑上就不是动态的,甚至都系显示不出来,只好自己动手研究了,经过自己的努力终于实现了echats动态刷新折线图,直接上代码喽!

!DOCTYPE html> 
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <!--<script type="text/javascript" src="jquery.js"></script>-->
    <script type="text/javascript" src="echarts.js"></script>//引入echats.js包
    <body>
        <div id="main" style="width: 1000px;height:600px;"></div>
    </body>
</html>
<script type="text/javascript">
    // 基于准备好的dom,初始化echarts实例     
    var myChart = echarts.init(document.getElementById('main'));//这个是必须要写的
    var ydata = [4,8,1,4,2,3,7,1,7,8];//定义一个ydata数据
 option = {
    title: {
        text: '时刻动态数据', 
    },
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'cross',
            label: {
                backgroundColor: '#283b56'
            }
        }
    },
    legend: {
        data:['最新成交价', '预购队列']
    },
    toolbox: {
        show: true,
        feature: {
            dataView: {readOnly: false},
            restore: {},
            saveAsImage: {}
        }
    },
    dataZoom: {
        show: true,
        start: 0,//图表下放的显示数量
        end: 100,
       // filterMode: 'empty'
    },
    xAxis: [
        {
            type: 'category',
            boundaryGap: true,
            data:
             (function (){
                var now = new Date();
                var res = [];
                var len = 10;
                while (len--) {
                    res.unshift(now.toLocaleTimeString().replace(/^\D*/,''));
                    now = new Date(now - 1000);
                }
                return res;
            })()
        }
    ],
    yAxis: [
        {
            type: 'value',
            scale: true,
            name: '价格',
            max: 30,
            min: 0,
            boundaryGap: [0.2, 0.2]
        }
    ],
    series: [
        {
            name:'最新成交价',
            type:'line',//修改显示图表的类型该类型为折线图
            data:ydata//为轴的数值
        }
    ]
};     
   setInterval(function() {
    	axisData = (new Date()).toLocaleTimeString().replace(/^\D*/,'');//获取时间将非数字去掉
   	ydata.shift();//删除掉第一个值
   	ydata.push((Math.random() * 10 + 5).toFixed(1) - 0);//随机生成一个数添加到末尾
    	option.xAxis[0].data.shift();//获取x坐标轴的位置数据删除掉第一个值
 	    option.xAxis[0].data.push(axisData);//获取当前的时间将其放置在最后一个位置      
        myChart.setOption({ //重新对表的一些属性进行修改,下面就是对option重新修改的内容
        xAxis: [{
            type: 'category',
            boundaryGap: true,
            data:option.xAxis[0].data}],
        series: [{
            name:'最新成交价',
            type:'line',
            data:ydata//为轴的数值
        }]
        });
     }, 3000);//setInterval()方法的使用具体请百度,设置时间每三秒进行数据的更新
myChart.setOption(option);   // 使用刚指定的配置项和数据显示图表。
</script>

上面就是代码部分,有不懂得一起学习咨询我,哈哈,网上的资料都不是很全,这方面,也不是都很准确,希望我能给你带来帮助!
效果截图:
在这里插入图片描述

Vue是一个用于构建用户界面的渐进式框架,可以很好的与echarts图表库集成。在Vue中循环遍历echarts折线图,实际上就是在组件生命周期中不断刷新数据并重新绘制图表。接下来,本人将介绍一种简单的实现方式: 1. 首先,在Vue组件中引入echarts图表库,并创建 echarts实例 ``` import echarts from 'echarts' export default { data () { return { chartInstance: null, chartOptions: null, chartData: [] } }, mounted() { this.chartInstance = echarts.init(document.getElementById('chart')) }, // ... } ``` 2. 在Vue数据中定义用于绑定echarts图表的选项和数据 ``` data () { return { chartInstance: null, chartOptions: { // echarts配置项 }, chartData: [1,2,3,4,5] // 先定义一个初始数据 } } ``` 3. 创建更新数据的方法,用于在数据更新时重新渲染图表 ``` methods: { // 更新数据方法 updateData() { // 请求数据和更新chartData的操作 // ... // 重新绘制图表 this.chartInstance.setOption(this.chartOptions) } } ``` 4. 在组件中使用echarts渲染图表,并绑定chartData数据 ``` <template> <div> <!-- echarts用于绘制的canvas --> <div class="chart" id="chart"></div> <button @click="updateData">更新数据</button> </div> </template> <script> import echarts from 'echarts' export default { data () { return { chartInstance: null, chartOptions: { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: this.chartData, // 绑定chartData type: 'line' }] }, chartData: [1,2,3,4,5] // 初始数据 } }, methods: { updateData() { // 请求数据和更新chartData的操作 // ... // 重新绘制图表 this.chartInstance.setOption(this.chartOptions) } }, mounted() { this.chartInstance = echarts.init(document.getElementById('chart')) this.chartInstance.setOption(this.chartOptions) } } </script> ``` 在此代码中,我们使用了一个简单的数组来存储数据,以便使用chartData实现数据的实时更新。此外,在updateData方法中,我们获取新数据后,只需将新数据更新到chartData中,即可通过setOption方法重新绘制图表。总的来说,这种方式可以很好地实现Vue循环遍历echarts折线图的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拼命_小李

给点鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值