vue中如何使用echarts动态渲染数据

 更新时间:2023年11月02日 11:54:44   作者:打小就霸  
这篇文章主要给大家介绍了关于vue中如何使用echarts动态渲染数据的相关资料,echarts是一款基于JavaScript的开源可视化图表库,它通过简单的配置即可实现各种各样的可视化效果,需要的朋友可以参考下

一、业务场景:

最近在vue中使用echarts时 引入的时候怎么也引不上,后面发现需要绑定在原型上就可以完美解决(也可以直接在需要引入的页面用ES5中的require引入require(‘echarts’))

为了避免大家走弯路,下面整合了一下echarts 在vue框架中的使用步骤

二、具体实现步骤:

1、先在终端安装echarts

npm install echarts --save

2、在main.js中引入(这里分5.0以上和以下两个版本来安装)

5.0以上版本

  import * as echarts from 'echarts'

5.0以下版本

  import  echarts  from 'echarts'

注册在原型上 `

 vue.prototype.$echarts   = echarts

3、在html部分留一个div容器来承载画布

  <div id="main" style="width: 500px;height:400px;"></div>

4、把要实现的代码放入函数中

   init() {
   //调接口
        quShiPic({})
          .then(res => {
            console.log(res)
            const { data, count, code, msg } = res
            if (msg == 'success') {
              this.quLineLists = data
              console.log(this.quLineLists)
              console.log(this.quLineLists[0].data)
              console.log(this.quLineLists[1].data)
              console.log(this.quLineLists[2].data)
              // 基于准备好的dom,初始化echarts实例
              var myChart = this.$echarts.init(
                document.getElementById('main')
              )
              // 配置option选项
              var option = {
                title: {
                  text: '热力变化曲线'
                },
                tooltip: {
                  trigger: 'axis'
                },
                legend: {
                  data: ['全部', '人', '物']
                },
                grid: {
                  left: '3%',
                  right: '2%',
                  bottom: '3%',
                  containLabel: true
                },
                toolbox: {
                  feature: {
                    saveAsImage: {}
                  }
                },
                xAxis: {
                  type: 'category',
                  boundaryGap: false,
                  data: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
                },
                yAxis: {
                  type: 'value'
                },
                series:
                  [
                    {
                      name: '全部',
                      type: 'line',
                      stack: 'Total',
                      smooth: true,
                      // data: [120, 132,0, 101, 134, 90,0, 230, 210]
                      data: this.quLineLists[0].data
                    },
                    {
                      name: '人',
                      type: 'line',
                      smooth: true,
                      stack: 'Total',
                      // data: [220, 182, 191, 234, 290, 330, 310]
                      data: this.quLineLists[1].data
                    },
                    {
                      name: '物',
                      type: 'line',
                      stack: 'Total',
                      smooth: true,
                      // data: [150, 232, 201, 154, 190, 330, 410]
                      data: this.quLineLists[2].data
                    }
                  ]
              }
              // 把配置option选项用js放进dom节点
              myChart.setOption(option)
            }
          }).catch((err) => {
          console.log(err)
        })
      },

5、页面加载的时候调用功能函数(mounted生命周期里)

    mounted() {
      this.init()
    },

三、完整代码:

<template>
  <div>
    <div id="main" style="width: 600px;height:400px;"></div>
  </div>
</template>
<script>
  export default {
    name: 'WhiteName',
    data() {
      return {}
    },
    mounted() {
      this.init()
    },
    methods: {
   getLine() {
        quShiPic({})
          .then(res => {
            console.log(res)
            const { data, count, code, msg } = res
            if (msg == 'success') {
              this.quLineLists = data
              console.log(this.quLineLists)
              console.log(this.quLineLists[0].data)
              console.log(this.quLineLists[1].data)
              console.log(this.quLineLists[2].data)
              // 基于准备好的dom,初始化echarts实例
              var myChart = this.$echarts.init(
                document.getElementById('main')
              )
              // 配置option选项
              var option = {
                title: {
                  text: '热力变化曲线'
                },
                tooltip: {
                  trigger: 'axis'
                },
                legend: {
                  data: ['全部', '人', '物']
                },
                grid: {
                  left: '3%',
                  right: '2%',
                  bottom: '3%',
                  containLabel: true
                },
                toolbox: {
                  feature: {
                    saveAsImage: {}
                  }
                },
                xAxis: {
                  type: 'category',
                  boundaryGap: false,
                  data: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
                },
                yAxis: {
                  type: 'value'
                },
                series:
                  [
                    {
                      name: '全部',
                      type: 'line',
                      stack: 'Total',
                      smooth: true,
                      // data: [120, 132,0, 101, 134, 90,0, 230, 210]
                      data: this.quLineLists[0].data
                    },
                    {
                      name: '人',
                      type: 'line',
                      smooth: true,
                      stack: 'Total',
                      // data: [220, 182, 191, 234, 290, 330, 310]
                      data: this.quLineLists[1].data
                    },
                    {
                      name: '物',
                      type: 'line',
                      stack: 'Total',
                      smooth: true,
                      // data: [150, 232, 201, 154, 190, 330, 410]
                      data: this.quLineLists[2].data
                    }
                  ]
              }
              // 把配置option选项用js放进dom节点
              myChart.setOption(option)
            }
          }).catch((err) => {
          console.log(err)
        })
      },
      }
    }
  }
</script>

<style scoped>

</style>

四、效果展示:

在这里插入图片描述

总结 

到此这篇关于vue中如何使用echarts动态渲染数据的文章就介绍到这了,更多相关vue echarts动态渲染数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈nuxtjs校验登录中间件和混入(mixin)

    浅谈nuxtjs校验登录中间件和混入(mixin)

    这篇文章主要介绍了浅谈nuxtjs校验登录中间件和混入(mixin),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Vue3 JSX解释器的实现

    Vue3 JSX解释器的实现

    本文主要介绍了Vue3 JSX解释器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Vue组件如何设置Props实例详解

    Vue组件如何设置Props实例详解

    props主要用于组件的传值,他的工作就是为了接收外面传过来的数据,与data、el、ref是一个级别的配置项,下面这篇文章主要给大家介绍了关于Vue组件如何设置Props的相关资料,需要的朋友可以参考下
    2022-06-06
  • vue如何集成raphael.js中国地图的方法示例

    vue如何集成raphael.js中国地图的方法示例

    最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作。本文就给大家介绍了关于利用vue集成raphael.js中国地图的相关资料,需要的朋友可以参考下。
    2017-08-08
  • 关于Vue脚手架中render 理解

    关于Vue脚手架中render 理解

    这篇文章主要介绍了Vue脚手架中的 render 理解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Vue数组根据对象属性去重和数组对象去重实现方式

    Vue数组根据对象属性去重和数组对象去重实现方式

    文章介绍了两种去重方法:一种是根据对象的`id`属性去重,另一种是根据`id`和`name`属性去重,通过`map()`和`filter()`方法结合`indexOf()`实现去重
    2025-12-12
  • Vue router的addRoute方法实现控制权限方法详解

    Vue router的addRoute方法实现控制权限方法详解

    这篇文章主要介绍了vue动态路由添加,vue-router的addRoute方法实现权限控制流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • Vue配合Vant使用时area省市区选择器的使用方式

    Vue配合Vant使用时area省市区选择器的使用方式

    这篇文章主要介绍了Vue配合Vant使用时area省市区选择器的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 记VUE3+TS获取组件类型的方法踩坑及解决

    记VUE3+TS获取组件类型的方法踩坑及解决

    这篇文章主要介绍了VUE3+TS获取组件类型的方法踩坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Vue实现动态路由设置的两大方法详解

    Vue实现动态路由设置的两大方法详解

    这篇文章主要为大家详细介绍了Vue中两种动态路由设置方案,主要是前端控制方案和后端控制方案,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-04-04

最新评论