echarts怎么使用?数据可视化怎么做?本文是vue3框架搭配echarts搭建数据可视化图表!将给大家演示echarts的安装,和基本使用!图形会以柱状图和漏斗图为大家做个展示!

企业开发建议按需引入,因为按需引入的体积比较小,利于优化代码;

安装echarts库:

说明

企业开发建议按需引入,因为按需引入的体积比较小,利于优化代码;

以下演示,将直接全局引入了

echarts官网链接:

https://echarts.apache.org/zh/index.html

安装命令

npm install echarts --save
yarn add echarts --save
pnpm i echarts --save

全局引入

正常情况如果全局引入,应该在main.js里引入,按需引入则在需要的组件里引入,我这里为了演示方便,全局引入也在组件内引入了!

import * as echarts from "echarts"

echarts图表小demo:

演示图:

代码:

<template>
  <div class="chart-container">
    <div ref="chartRef" class="chart"></div>
  </div>
</template>

<script setup>
import { ref, onMounted } from "vue"
import * as echarts from "echarts"

    const chartRef = ref(null) // 创建一个ref引用来保存echarts容器

    onMounted(() => {
      const chartDom = chartRef.value
      console.log(chartDom)
      const myChart = echarts.init(chartDom) // 使用echarts初始化图表

      // 在此处设置echarts的配置项和数据
      const options = {
        title: {
          text: "ECharts 入门示例",
        },
        tooltip: {},
        xAxis: {
          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
        },
        yAxis: {},
        series: [
          {
            name: "销量",
            type: "bar",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      }

      myChart.setOption(options) // 将配置项应用到图表中
    })
</script>

<style>
.chart-container {
  width: 100%;
  height: 400px;
}

.chart {
  width: 100%;
  height: 100%;
}
</style>

说明

以上这个官方入门示例代码主要有以下注意点:

1、引入echarts文件

2、需要用一个ref获取页面节点

<div ref="chartRef" class="chart"></div>
const chartRef = ref(null) // 创建一个ref引用来保存echarts容器

名字需要对应,才能获取到节点,否则返回null

3、在onMounted生命周期里写图表逻辑,实现组件一加载即可看到图表

4、使用echarts初始化图表

      const myChart = echarts.init(chartDom) // 使用echarts初始化图表

5、在options对象里写图形的逻辑

6、应用图表到容器中

myChart.setOption(options) // 将配置项应用到图表中

echarts梯形图:

<template>
  <div class="echarts-box">
    <div id="myEcharts" :style="{ width: '420px', height: '360px' }"></div>
  </div>
</template>

<script setup>
import * as echarts from "echarts"
import { onMounted, onUnmounted } from "vue"
import { FunnelChart } from "echarts/charts"
import { CanvasRenderer } from "echarts/renderers"

echarts.use([FunnelChart, CanvasRenderer])

let myEcharts = echarts
onMounted(() => {
  initChart()
})
onUnmounted(() => {
  myEcharts.dispose
})
function initChart() {
  let chart = myEcharts.init(
    document.getElementById("myEcharts"),
    "purple-passion"
  )
  chart.setOption({
    series: [
      {
        type: "funnel",
        left: "10%",
        width: "50%",
        min: 40,
        max: 100,
        minSize: "50%",
        maxSize: "100%",
        data: [
          { value: 60, name: "Visit" },
          { value: 40, name: "Inquiry" },
          { value: 80, name: "Click" },
          { value: 100, name: "Show" },
        ],
      },
    ],
  })
  window.onresize = function () {
    chart.resize()
  }
}
</script>


硬核补充:

如果此图表有动态展示效果,例如点击某个按钮或者搜索或者筛选,视图可视化图表会更新。

这种业务需求的思路如下:

1、option里的数据可以做成响应式数据

2、将执行代码挂载option的封装到一个函数里,用调用函数的方式来调用

3、用侦听器watch监听数据的变化,当数据发生改变时,重新调用图表的挂载