PHP前端开发

学习微信小程序如何使用echarts图表

百变鹏仔 3周前 (11-27) #echarts
文章标签 图表

前言

数据统计是我们经常使用的功能,我们一般在 pc 端使用的比较多,大多数用在管理系统中统计数据的分析,最近在做微信小程序的时候也遇到了相同的需求,把数据统计在小程序端以图表的形式展示,这里记录下自己的配置使用过程。

准备

首先百度的 echarts 没有提供小程序版本,这里找了个封装过可以用在微信端的仓库小程序版 echarts,通过这个链接下载最新的包。解压之后有个ec-canvas文件夹就是封装的组件,放到小程序的组件文件夹目录下,以供使用。

<span style="display: block; background: url(https://my-wechat.mdnice.com/point.png); height: 30px; width: 100%; background-size: 40px; background-repeat: no-repeat; background-color: #282c34; margin-bottom: -7px; border-radius: 5px; background-position: 10px 10px;"></span>├── ec-canvas<br>│   ├── ec-canvas.js<br>│   ├── ec-canvas.json<br>│   ├── ec-canvas.wxml<br>│   ├── ec-canvas.wxss<br>│   ├── echarts.min.js<br>│   └── wx-canvas.js<br><span class="copy-code-btn">复制代码</span>

使用

  1. 在需要使用的页面配置文件中引入该图表组件
<span style="display: block; background: url(https://my-wechat.mdnice.com/point.png); height: 30px; width: 100%; background-size: 40px; background-repeat: no-repeat; background-color: #282c34; margin-bottom: -7px; border-radius: 5px; background-position: 10px 10px;"></span><span class="hljs-string" style="color: #98c379; line-height: 26px;">"usingComponents"</span>: {<br>    <span class="hljs-attr" style="color: #d19a66; line-height: 26px;">"ec-canvas"</span>: <span class="hljs-string" style="color: #98c379; line-height: 26px;">"../../ec-canvas/ec-canvas"</span><br>  }<br><span class="copy-code-btn">复制代码</span>
  1. index.wxml 中,我们创建了一个  组件:
<view>  <ec-canvas></ec-canvas></view>复制代码
  1. 其中 ec 是一个我们在 index.js 中定义的对象,它使得图表能够在页面加载后被初始化并设置。index.js 的结构如下:
<span style="display: block; background: url(https://my-wechat.mdnice.com/point.png); height: 30px; width: 100%; background-size: 40px; background-repeat: no-repeat; background-color: #282c34; margin-bottom: -7px; border-radius: 5px; background-position: 10px 10px;"></span>Page({<br>  <span class="hljs-attr" style="color: #d19a66; line-height: 26px;">data</span>: {<br>    <span class="hljs-attr" style="color: #d19a66; line-height: 26px;">ec</span>: {<br>      <span class="hljs-attr" style="color: #d19a66; line-height: 26px;">onInit</span>: initChart<br>    }<br>  },<br>  onLoad(){<br>      <span class="hljs-comment" style="color: #5c6370; font-style: italic; line-height: 26px;">// 在需要的地方获取dom</span><br>      <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">this</span>.echartsComponnet1 = <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">this</span>.selectComponent(<span class="hljs-string" style="color: #98c379; line-height: 26px;">'#mychart-dom-bar1'</span>)<br>      <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">this</span>.init_echarts1({ <span class="hljs-attr" style="color: #d19a66; line-height: 26px;">value</span>: res.data.rotateSpeed || <span class="hljs-number" style="color: #d19a66; line-height: 26px;">0</span>, <span class="hljs-attr" style="color: #d19a66; line-height: 26px;">name</span>: <span class="hljs-string" style="color: #98c379; line-height: 26px;">'x1000'</span> })<br>  }<br>  <span class="hljs-comment" style="color: #5c6370; font-style: italic; line-height: 26px;">// 初始化</span><br>    init_echarts1 (data) {<br>      <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">this</span>.echartsComponnet1.init(<span class="hljs-function" style="line-height: 26px;">(<span class="hljs-params" style="line-height: 26px;">canvas, width, height</span>) =&gt;</span> {<br>        <span class="hljs-comment" style="color: #5c6370; font-style: italic; line-height: 26px;">// 初始化图表</span><br>        <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">const</span> chart = echarts.init(canvas, <span class="hljs-literal" style="color: #56b6c2; line-height: 26px;">null</span>, {<br>          <span class="hljs-attr" style="color: #d19a66; line-height: 26px;">width</span>: width,<br>          <span class="hljs-attr" style="color: #d19a66; line-height: 26px;">height</span>: height<br>        })<br>        <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">this</span>.chart = chart<br>        <span class="hljs-comment" style="color: #5c6370; font-style: italic; line-height: 26px;">// setGaugeChartOption1获取到基础配置</span><br>        chart.setOption(setGaugeChartOption1(data))<br>        <span class="hljs-comment" style="color: #5c6370; font-style: italic; line-height: 26px;">// 注意这里一定要返回 chart 实例,否则会影响事件处理等</span><br>        <span class="hljs-keyword" style="color: #c678dd; line-height: 26px;">return</span> chart<br>      })<br>    },<br>});<br><span class="copy-code-btn">复制代码</span>
相关学习推荐:微信小程序教程