微信小程序中使用ECharts--折线图、柱状图、饼图等

微信小程序开发者的反馈,表示他们强烈需要像 ECharts 这样的可视化工具。但是微信小程序是不支持 DOM 操作的,Canvas 接口也和浏览器不尽相同。

因此,ECharts 团队和微信小程序官方团队合作,提供了 ECharts 的微信小程序版本。开发者可以通过熟悉的 ECharts 配置方式,快速开发图表,满足各种可视化需求。

体验示例小程序

在微信中扫描下面的二维码即可体验 ECharts Demo:

ECharts Demo

GitHub 地址  https://github.com/ecomfe/echarts-for-weixin

如何使用:

ECharts在微信小程序中以组件的方式使用,所以非常简单

一、首先下载

下载项目到本地,并使用微信开发者工具打开,如下图

项目下载地址 GitHub 地址  https://github.com/ecomfe/echarts-for-weixin

可以自行从 ECharts 项目中下载最新发布版

在pages文件夹下每一个文件夹为一个图标样式

二、在自己项目中使用ECharts

1、首先把整个ec-canvas文件夹复制到自己项目中,位置可以自己定,我就放在最外面根目录下了

2、引用组件,

json:

在你要显示图表的页面的json配置文件中加入以下配置,这也是组件的使用方法

{
  "usingComponents": {
    "ec-canvas": "/ec-canvas/ec-canvas"
  }
}

这一配置的作用是,允许我们在wxml 中使用 <ec-canvas> 组件。注意路径的相对位置要写对,如果目录结构和本例相同,就应该像上面这样配置。

js:

引入js,

// import { echarts } from '../../ec-canvas/echarts.js'
import * as echarts from '../../ec-canvas/echarts.js';

为什么上面注释掉的一行也发出来呢,为了告诉你们那样写不管用

完整带数据js:

import * as echarts from '../../ec-canvas/echarts';

function initChart(canvas, width, height, dpr) {
  const chart = echarts.init(canvas, null, {
    width: width,
    height: height,
    devicePixelRatio: dpr // new
  });
  canvas.setChart(chart);

  var option = {
    title: {
      text: '测试下面legend的红色区域不应被裁剪',
      left: 'center'
    },
    legend: {
      data: ['A', 'B', 'C'],
      top: 50,
      left: 'center',
      backgroundColor: 'red',
      z: 100
    },
    grid: {
      containLabel: true
    },
    tooltip: {
      show: true,
      trigger: 'axis'
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
      // show: false
    },
    yAxis: {
      x: 'center',
      type: 'value',
      splitLine: {
        lineStyle: {
          type: 'dashed'
        }
      }
      // show: false
    },
    series: [{
      name: 'A',
      type: 'line',
      smooth: true,
      data: [18, 36, 65, 30, 78, 40, 33]
    }, {
      name: 'B',
      type: 'line',
      smooth: true,
      data: [12, 50, 51, 35, 70, 30, 20]
    }, {
      name: 'C',
      type: 'line',
      smooth: true,
      data: [10, 30, 31, 50, 40, 20, 10]
    }]
  };

  chart.setOption(option);
  return chart;
}

Page({
  onShareAppMessage: function (res) {
    return {
      title: 'ECharts 可以在微信小程序中使用啦!',
      path: '/pages/index/index',
      success: function () { },
      fail: function () { }
    }
  },
  data: {
    ec: {
      onInit: initChart
    }
  },

  onReady() {
  }
});

wxml:

<view class="container">
  <ec-canvas id="mychart-dom-line" canvas-id="mychart-line" ec="{{ ec }}"></ec-canvas>
</view>

如果到这里你的页面还没显示图表,也没有报错,那就它加个样式

<ec-canvas style="width: 100%; height: 500px;" id="mychart-dom-line" canvas-id="mychart-line" ec="{{ ec }}">

如果加了样式也还没显示,请看这篇文章

微信小程序引入echarts不显示 开发者工具上显示, 但上线不显示 也不报错_ec-canvas图表不现实_guochanof的博客-CSDN博客

最终效果:

最笨的方法

直接把demo中pages下你所用的图表整个文件夹复制到你的项目,看好只要路径别错,改都不用改直接就可以用

重要提示:

全部图表的echarts.js非常大,如果你的项目较大可能会导致项目上传失败,

在你把整个js导入项目时开发者工具也会有如下提示:

[JS 文件编译错误] 以下文件体积超过 500KB,已跳过压缩以及 ES6 转 ES5 的处理。ec-canvas/echarts.js

处理方法:

按你项目所需的图表定制化下载, 定制地址ECharts 在线构建

勾选你所需要的图表,最下方点下载,

下载完成后,

把新定制的echarts.min.js替换掉原来的echarts.js

涉及相关问题

关于图表不显示, 请看这篇文章 

微信小程序引入echarts不显示 开发者工具上显示, 但上线不显示 也不报错_ec-canvas图表不现实_guochanof的博客-CSDN博客

关于图表模糊, 请看这篇文章  

解决微信小程序使用echarts图表模糊_window.devicepixelratio 1.2导致echarts 渲染模糊-CSDN博客

  • 36
    点赞
  • 210
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值