【Vue中使用Echarts】echarts初体验

一、echarts简介

在大数据盛行的今天,数据可视化变得越来越广泛。而在前端工作中,数据可视化用得最多的,可能就是图表了。在众多的图表插件中,echarts以其良好的性能和完善的API,图表的多样性和功能的完整性,被广大开发者认可,成为了前端图表使用最多的工具,所以,今天我就简单的讲一下,如何在vue中更优雅的使用echarts。ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ECharts最初由百度团队开源,并于2018年初捐赠给Apache基金会,成为ASF孵化级项目。ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

特性如下:

请添加图片描述

  • 丰富的图表类型

​ 提供开箱即用的 20 多种图表和十几种组件,并且支持各种图表以及组件的任意组合。

  • 强劲的渲染引擎

​ Canvas、SVG 双引擎一键切换,增量渲染、流加载等技术实现千万级数据的流畅交互。

  • 专业的数据分析

    通过数据集管理数据,支持数据过滤、聚类、回归,帮助实现同一份数据的多维度分析。

  • 优雅的可视化设计

    默认设计遵从可视化原则,支持响应式设计,并且提供了灵活的配置项方便开发者定制。

  • 健康的开源社区

    活跃的社区用户保证了项目的健康发展,也贡献了丰富的第三方插件满足不同场景的需求。

  • 友好的无障碍访问

    智能生成的图表描述和贴花图案,帮助视力障碍人士了解图表内容,读懂图表背后的故事。

通俗点来说Echarts特点如下

官网地址:https://www.echartsjs.com/zh/index.html

扩展知识------常见的数据可视化库:

  • D3.js 目前 Web 端评价最高的 Javascript 可视化工具库(入手难)
  • ECharts.js 百度出品的一个开源 Javascript 数据可视化库
  • Highcharts.js 国外的前端数据可视化库,非商用免费,被许多国外大公司所使用
  • AntV 蚂蚁金服全新一代数据可视化解决方案 等等
  • Highcharts 和 Echarts 就像是 Office 和 WPS 的关系

ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

二、初次体验echarts

1.下载

官网说过,可以通过以下几种方式引入echarts

这里在vue脚手架内使用的是第三种引入方式,直接将相应的包下载到node_modules内

npm i echarts -save

请添加图片描述

可以看到依赖中已经添加上了
请添加图片描述

下载完之后可以去echarts官网寻找相应的案例进行体验点击传送

请添加图片描述

由于echarts插件是由国人开发,所以官方的文档相当友好,并且提供了许多案例,下面我们找其中的一个案例作为我们今天体验的案例

至于代码是什么意思咱们先不要管,只要将案例跑起来后面再去理解代码的意思就很容易了。接下来将以下图案例为例:

请添加图片描述

2.在vue中引入echarts

先放运行结果(如图所示):

请记住关键的一步,在一个dom盒子内想要放入一个表格的时候,需要先给dom盒子一个宽高
请添加图片描述

①全局引入(代码)

main.js

import Vue from 'vue'
import App from './App.vue'
import * as echarts from "echarts"
// 绑定在vue的原型对象上
Vue.prototype.$echarts=echarts
// 关闭生产提示
Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

app.vue

这里做的工作就是在页面挂载完毕后,使用this.$echarts初始化一个表格,并对dom元素进行渲染

mounted()=====>initOneEcharts()

而表格的配置项在initOneEcharts()函数内部

<template>
  <div id="app">hello</div>
</template>

<script>
export default {
  name: "app",
  mounted() {
    console.log("挂载!!!");
    this.initOneEcharts();
  },
  methods: {
    initOneEcharts() {
      console.log("初始化一个图标!!!");
      const option = {
        color: ["#80FFA5", "#00DDFF", "#37A2FF", "#FF0087", "#FFBF00"],
        title: {
          text: "Gradient Stacked Area Chart",
        },
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "cross",
            label: {
              backgroundColor: "#6a7985",
            },
          },
        },
        legend: {
          data: ["Line 1", "Line 2", "Line 3", "Line 4", "Line 5"],
        },
        toolbox: {
          feature: {
            saveAsImage: {},
          },
        },
        grid: {
          left: "3%",
          right: "4%",
          bottom: "3%",
          containLabel: true,
        },
        xAxis: [
          {
            type: "category",
            boundaryGap: false,
            data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
          },
        ],
        yAxis: [
          {
            type: "value",
          },
        ],
        series: [
          {
            name: "Line 1",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(128, 255, 165)",
                },
                {
                  offset: 1,
                  color: "rgb(1, 191, 236)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [140, 232, 101, 264, 90, 340, 250],
          },
          {
            name: "Line 2",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(0, 221, 255)",
                },
                {
                  offset: 1,
                  color: "rgb(77, 119, 255)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [120, 282, 111, 234, 220, 340, 310],
          },
          {
            name: "Line 3",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(55, 162, 255)",
                },
                {
                  offset: 1,
                  color: "rgb(116, 21, 219)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [320, 132, 201, 334, 190, 130, 220],
          },
          {
            name: "Line 4",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(255, 0, 135)",
                },
                {
                  offset: 1,
                  color: "rgb(135, 0, 157)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [220, 402, 231, 134, 190, 230, 120],
          },
          {
            name: "Line 5",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            label: {
              show: true,
              position: "top",
            },
            areaStyle: {
              opacity: 0.8,
              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(255, 191, 0)",
                },
                {
                  offset: 1,
                  color: "rgb(224, 62, 76)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [220, 302, 181, 234, 210, 290, 150],
          },
        ],
      };
      this.$echarts.init(document.getElementById("app")).setOption(option);
    },
  },
};
</script>

<style scoped>
#app{
  width: 1000px;
  height: 600px;
}
</style>

② 局部引入

app.vue //展示helloword组件

<template>
  <div id="app"><HelloWorld/></div>
</template>

<script>
import HelloWorld from "./components/HelloWorld.vue"
export default {
  name: "app",
  components:{
    HelloWorld
  }
};
</script>

<style scoped>
#app{
  width: 1000px;
  height: 600px;
}
</style>

helloword //使用echarts渲染出来一个表格

<template>
  <div class="hello">

  </div>
</template>

<script>
import * as echarts from "echarts"
export default {
  name: 'HelloWorld',
  mounted() {
    console.log("挂载!!!");
    this.initOneEcharts();
  },
  methods: {
    initOneEcharts() {
      console.log("初始化一个图标!!!");
      const option = {
        color: ["#80FFA5", "#00DDFF", "#37A2FF", "#FF0087", "#FFBF00"],
        title: {
          text: "Gradient Stacked Area Chart",
        },
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "cross",
            label: {
              backgroundColor: "#6a7985",
            },
          },
        },
        legend: {
          data: ["Line 1", "Line 2", "Line 3", "Line 4", "Line 5"],
        },
        toolbox: {
          feature: {
            saveAsImage: {},
          },
        },
        grid: {
          left: "3%",
          right: "4%",
          bottom: "3%",
          containLabel: true,
        },
        xAxis: [
          {
            type: "category",
            boundaryGap: false,
            data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
          },
        ],
        yAxis: [
          {
            type: "value",
          },
        ],
        series: [
          {
            name: "Line 1",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(128, 255, 165)",
                },
                {
                  offset: 1,
                  color: "rgb(1, 191, 236)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [140, 232, 101, 264, 90, 340, 250],
          },
          {
            name: "Line 2",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(0, 221, 255)",
                },
                {
                  offset: 1,
                  color: "rgb(77, 119, 255)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [120, 282, 111, 234, 220, 340, 310],
          },
          {
            name: "Line 3",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(55, 162, 255)",
                },
                {
                  offset: 1,
                  color: "rgb(116, 21, 219)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [320, 132, 201, 334, 190, 130, 220],
          },
          {
            name: "Line 4",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(255, 0, 135)",
                },
                {
                  offset: 1,
                  color: "rgb(135, 0, 157)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [220, 402, 231, 134, 190, 230, 120],
          },
          {
            name: "Line 5",
            type: "line",
            stack: "Total",
            smooth: true,
            lineStyle: {
              width: 0,
            },
            showSymbol: false,
            label: {
              show: true,
              position: "top",
            },
            areaStyle: {
              opacity: 0.8,
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: "rgb(255, 191, 0)",
                },
                {
                  offset: 1,
                  color: "rgb(224, 62, 76)",
                },
              ]),
            },
            emphasis: {
              focus: "series",
            },
            data: [220, 302, 181, 234, 210, 290, 150],
          },
        ],
      };
      echarts.init(document.getElementById("app")).setOption(option);
    },
  },
};
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
#hello{
  width: 1000px;
  height: 600px;
}
</style>

请添加图片描述

至此,我们入门了如何在vue中集成echarts插件,想要将echarts插件玩6还得继续往深的学习。


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 要在Vue使用Echarts,需要先安装EchartsVue-Echarts: 1. 安装Echarts:在终端运行`npm install echarts --save` 2. 安装Vue-Echarts:在终端运行`npm install vue-echarts --save` 安装完成后,在Vue组件使用Echarts的步骤如下: 1. 在组件引入Vue-Echarts ``` import ECharts from 'vue-echarts/components/ECharts.vue' ``` 2. 在组件注册ECharts组件 ``` components: { 'echarts': ECharts } ``` 3. 在组件使用ECharts ``` <template> <div> <echarts :options="chartOptions"></echarts> </div> </template> <script> import ECharts from 'vue-echarts/components/ECharts.vue' export default { components: { 'echarts': ECharts }, data() { return { chartOptions: { // ECharts配置项 } } } } </script> ``` 其,`chartOptions`是ECharts的配置项,具体的配置项可以参考ECharts官方文档。 ### 回答2: Vue使用ECharts是一种常见的数据可视化方案。ECharts是一个基于JavaScript的开源可视化库,它提供了丰富多样的图表和图形,可以用于展示各种类型的数据。 Vue结合ECharts可以实现动态的数据可视化。首先,我们需要在Vue项目引入ECharts的库文件。然后,在Vue组件可以通过配置ECharts的选项来创建图表,并通过绑定数据来更新图表的展示。 Vue提供了生命周期钩子函数,我们可以在组件的mounted钩子函数初始化ECharts图表。在这个钩子函数,我们可以使用`this.$refs`访问组件的DOM元素,然后创建ECharts图表实例,并通过调用其API方法来配置图表的样式和数据。 当数据变化时,我们可以使用Vue的响应式机制自动更新ECharts图表。通过监听数据的变化,我们可以在数据改变时重新渲染图表,保持图表和数据的同步。 除了基本的图表展示,VueECharts还可以通过事件绑定来实现更多的交互效果。通过监听图表的点击、鼠标移动等事件,我们可以在Vue组件处理用户的交互行为,并根据这些交互行为来更新数据或者执行其他操作。 综上所述,VueECharts的结合可以实现强大的数据可视化功能。通过Vue的响应式机制和事件绑定,我们可以创建动态的、交互性强的数据可视化应用,并且可以根据数据的变化进行实时的更新。 ### 回答3: Vue使用Echarts是一种常见的数据可视化方案。Vue是一种流行的JavaScript框架,用于构建用户界面。而Echarts是一个基于JavaScript的图表库,可提供各种丰富的图表类型和交互功能。 在Vue项目使用Echarts非常简单。首先,我们需要在Vue项目安装Echarts。可以使用npm或yarn来安装echarts包。然后,我们可以在Vue组件导入Echarts,并在需要绘制图表的地方使用它。 在Vue组件,我们可以使用Echarts的实例化对象来创建不同类型的图表。我们可以设置图表的数据、样式、配置项等。可以根据需求定制各种图表,如折线图、柱状图、散点图等等。 Echarts提供了丰富的API和配置选项,使我们可以轻松地自定义和交互图表。我们可以设置图表的标题、轴标签、图例等内容。还可以通过响应式设计使图表适应不同的屏幕尺寸。 另外,VueEcharts的结合还可以实现动态更新图表。我们可以监听数据变化,并在数据发生变化时,动态更新图表,使图表能够实时反映数据的变化。 总之,VueEcharts的结合为开发人员提供了一种简单而强大的数据可视化方案。通过Echarts的丰富功能,我们可以轻松地在Vue项目创建漂亮和交互性强的图表,提供更好的数据呈现和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

酷尔。

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值