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监听数据的变化,当数据发生改变时,重新调用图表的挂载