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

2023-11-11

微信小程序开发者的反馈,表示他们强烈需要像 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 }}">

最终效果

最笨的方法

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

重要提示:

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

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

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

处理方法:

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

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

下载完成后,

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序中使用ECharts--折线图、柱状图、饼图等 的相关文章

  • 第6课 微信小程序模板的引入与使用:

    第6课 微信小程序模板的引入与使用 在template1 wxml中自定义一个wxml模板
  • 微信小程序报错 Error: errCode: -1

    如果你是因为请求云数据库内的数据 那就是权限问题 解决方法如下 勾选 所有用户可读 仅创建者可读写 如果你需要让所有用户都可读写那要怎么办呢 答案是创建云函数 调用云函数写入数据库 因为云函数就是创建者权限
  • 微信小程序实现随机抽签功能

    扫一扫以上小程序 许愿灯池 可以查看具体随机抽签功能 效果图 具体思路 为了让每个用户抽的签都不一样 并且能够进行记录 又为了防止我们的云开发数据库占用过多 因此我们决定使用微信缓存技术 为了实现每日抽签 我们还对时间进行了缓存 用if语句
  • 微信小程序地理位置接口( wx.getLocation )申请方法

    在平时我们在开发小程序时 难免会需要用到用户的地理位置信息的功能 微信小程序开发者开放平台新规要求如果没有申请开通微信小程序地理位置接口 wx getLocation 是无法审核通过小程序的 我自己在开发过程中 就有遇到这样的问题 如下 你
  • 微信小程序日历签到,拿走即用~

    参考了小友那个谁的 具体也忘记了 改be改be即用了 因为是日历 里面有一个算空格的地方 嘻嘻 也是小友提供的 再次感谢 html
  • 第11课 微信小程序多种弹窗提示样式

    第11课 微信小程序弹窗提示样式 消息提示 wx showToast Object object 关闭消息提示 wx hideToast Object object 弹窗选框提示 wx showModal Object object 加载提
  • 优美的小程序启动页(附源码)

    优美的小程序启动页 附源码 1 看效果 2 注意点 实现这一效果其实是很简单的 首先我们要把自己设置的启动页的路径写在app jon中 注意小程序默认第一个路径是小程序加载的开始页 其次我们的页面有时会出现这种情况 这是应为在x json文
  • webpack打包微信小程序

    webpack打包微信小程序目的 编写小程序代码时也可以引入 npm 上的插件 通过 webpack 打包后可以大大减小小程序代码的体积 项目目录 项目目录 plugin loadpath js src 把小程序的代码放到 src 文件夹内
  • 微信小程序如何实现(点击发送弹幕)

    扫一扫以上小程序 许愿灯池 可以查看具体点击发送弹幕功能 效果图 点击 祝福一下吧 即可弹出弹幕 直接上代码 index wxml
  • 微信小程序支付开发及问题

    一 前期准备 微信后台申请微信支付 微信支付 商务号关联 个人信息 填写 操作密码 api密钥设置 得到appid AppSecret 商户号 api密钥等 微信支付接口签名校验工具 二大概流程 1 登录 获取code 一个code只能用一
  • 第2课 微信开发者工具使用slider进度条标签编写rgb颜色选择功能:

    微信小程序编写rgb颜色选择功能 效果图如下 以下是wxml文件代码
  • 第5课 微信小程序常用尺寸单位rpx说明:

    第5课 微信小程序尺寸单位rpx说明 rpx单位 width 750rpx 定义所有手机屏幕宽度都为750rpx px单位 height 750px px单位最好只用于高度 如果定义宽度 手机屏幕不同显示效果也会不同 vw单位 width
  • 微信小程序开发笔记—设置页面密码

    文章目录 一 功能概述 二 实现效果 三 实现方法 1 新建个人登陆页面 2 设计密码获取判别函数和响应函数 1 定义变量 2 设计密码获取判别函数 3 设计响应函数 3 设计页面内容 1 input组件设计 2 button组件设计 四
  • 微信小程序中使用ECharts--折线图、柱状图、饼图等

    微信小程序开发者的反馈 表示他们强烈需要像 ECharts 这样的可视化工具 但是微信小程序是不支持 DOM 操作的 Canvas 接口也和浏览器不尽相同 因此 ECharts 团队和微信小程序官方团队合作 提供了 ECharts 的微信小
  • 微信小程序授权 获取用户信息

    小程序在18年4月25日做了一次更新 不再支持直接弹出授权信息框 具体代码请看这里 gt gt 获取用户信息 用户信息 获取unionId openId 请移步到这里 用户打开小程序时 直接弹框获取用户信息授权 可能会立马懵圈 你是谁 我在
  • 微信小程序16进制颜色码

    颜色码http www w3school com cn cssref css colornames asp
  • 微信小程序开发之数据存储 参数传递 数据缓存

    微信小程序开发内测一个月 数据传递的方式很少 经常遇到页面销毁后回传参数的问题 小程序中并没有类似Android的startActivityForResult的方法 也没有类似广播这样的通讯方式 更没有类似eventbus的轮子可用 现在已
  • 小程序报错:Unexpected end of JSON input

    报错原因 跳转页面传参内包含英文 let data aaa 你学会了吗 由于参数内携带英文 所以报错 wx navigateTo url home home data encodeURI JSON stringify data 解决方法 先
  • 第15课 微信小程序behavior组件间的数据共享:

    第15课 微信小程序behavior组件间的数据共享 先看看目录结构 我们先编写一下两my behavior的代码 这里是my behavior js的代码 behavior内还可以嵌套引入behavior my behavior js 引
  • 【微信小程序】wx.request出现undefined

    偶现 天啦噜 一直困惑了很久的bug终于找到原因了 示例代码如下 wx request sucess function res if res statusCode 200 res data status 200 do something e

随机推荐

  • Nim游戏(C++)

    题目 给定 n 堆石子 两位玩家轮流操作 每次操作可以从任意一堆石子中拿走任意数量的石子 可以拿完 但不能不拿 最后无法进行操作的人视为失败 问如果两人都采用最优策略 先手是否必胜 输入格式 第一行包含整数 n 第二行包含 n 个数字 其中
  • 微信小程序开发笔记—设置页面密码

    文章目录 一 功能概述 二 实现效果 三 实现方法 1 新建个人登陆页面 2 设计密码获取判别函数和响应函数 1 定义变量 2 设计密码获取判别函数 3 设计响应函数 3 设计页面内容 1 input组件设计 2 button组件设计 四
  • 如何显示远程桌面_库卡机器人之远程桌面RDP

    前面已经介绍过使用VNC和RSV来实现库卡机器人的远程连接 其实还有一些方法 比如Teamviewer或Virture Remote Pendant 简称VRP 这里就不再介绍如何来实现 今天主要介绍通过windows自带的RDP来实现这种
  • Verilog 学习笔记(4)——语句块,多路分支语句、循环语句、连续赋值语句

    本章主要讲解Verilog语言中的语句部分 Verilog 语句块主要包括顺序块和并行块 语句类型有多路分支语句 case语句 casex casez 语句 循环语句 while 循环 for 循环 repeat 循环 forever 循环
  • 前端18K面试题总览,往这方面准备就对了

    Vue面试题 生命周期函数面试题 1 什么是 vue 生命周期 2 vue生命周期的作用是什么 3 第一次页面加载会触发哪几个钩子 4 简述每个周期具体适合哪些场景 5 created和mounted的区别 6 vue获取数据在哪个周期函数
  • AI数字人应该怎么制作?详细教程

    现在市面上有很多可以制作AI数字人的平台工具 本文主要针对使用腾讯智影来制作数字人 附免费教程 1 腾讯智影介绍 腾讯推出的在线智能视频创作平台 智影是一款云端智能视频创作工具 无需下载即可通过PC浏览器访问 支持视频剪辑 素材库 文本配音
  • C语言之 printf() 和 scanf() 函数详解

    文章目录 前言 一 printf 函数详解 1 函数原型 2 参数说明符详解 3 代码示例及易错点示例 二 scanf 函数详解 1 函数原型 2 参数说明符详解 3 代码示例及易错点示例 前言 printf scanf 两个函数相信大家并
  • 产品经理需要向上思考

    上一篇文章说了产品经理如何锻炼自己看透事物本质的能力 王诗沐老师在其 幕后产品 一书中还提到向上思考能力 读完后对我有一定的启发 我加一些自己的思考 和大家聊聊这个话题 很多人在产品经理面试的时候 可能会被问到这样一个题目 就是你如何看待X
  • 数据库第五周实验——单表查询——例题实现

    文章目录 一 选择表中的若干列 1 查询指定列 2 查询全部列 3 查询经过计算的值 二 选择表中的若干元组 1 消除取值重复的行 DISTINCT 2 查询满足条件的元组 WHERE 1 比较大小 2 确定范围 3 确定集合 4 字符匹配
  • typescript第三天—接口和类

    接口 作一个简历的自动筛选程序 很简单 年龄小于 25 岁 胸围大于 90 公分的 可以进入面试环节 我们最开始的写法是这样的 新建一个文件 Demo8 ts 然后编写如下代码 const screenResume name string
  • 1.Docker学习之基础知识

    0x00 Docker 快速入门 1 基础介绍 2 Docker 架构 3 Docker 资源隔离 4 Docker 容器文件系统 0x01 Docker 安装 1 Linux 2 Windows 3 MAC 4 加速器配置 0x02 Do
  • win10 .yml .yaml 格式默认使用notepad++打开

    起因 发现win10 双击打开 yml yaml文件不能默认选择notepad 每次都得右击文件使用notepad 编辑 而且在设置 gt 应用 gt 默认应用 gt 按文件类型指定默认应用也没有 yml yaml 发现可以在notepad
  • 汇编语法

    1 通用寄存器 EAX EBX ECX EDX ESI EDI ESP EBP 它 们 的低 16 位就是 8086 的 AX BX CX DX SI DI SP BP 它们的含义如下 EAX 累加器 EBX 基址寄存器 Base ECX
  • 解决msvcp120d.dll和msvcr120d.dll缺失

    VS2015配置OpenCV2 4 xx之后 会出现如下问题 原因 微软的Visual Studio最终用户许可协议是禁止发布调试版 名字后面有D 的DLL的 msvcp120d dll和msvcr120d dll是VS2013版本中的调试
  • 文本检测(Text Detection)简要综述

    文章目录 检测 Detection 在计算机视觉中的位置 检测任务 经典数据集 评价指标 发展历史 什么叫Anchor 检测架构 RPN FPN 特征金字塔网络 几个文本检测的较新方法 FOTS 2018CVPR Fast Oriented
  • httpclient请求接口超时问题

    最近线上出现一个问题 外部请求过来后一直没有响应给调用方 看日志没有报错 可以复现 想到的就可能是五个原因 日志文件过大导致磁盘空间满了 导致正常的业务日志无法写入 但是重启后发现日志能正常写入 排除这个问题 系统对接很多外部数据源 可能哪
  • MySQL类型定义 - ENUM 和SET类型

    1 ENUM类型 ENUM类型又称为枚举类型 在创建表时 ENUM类型的取值范围以列表的形式指定 其基本形式如下 属性名 ENUM 值1 值2 值n 其中 属性名 参数指字段的名称 值n 参数表示列表中的第n个值 ENUM类型的值只能取列表
  • paddleLabe标注文件转labelImg

    代码 import os import xml etree ElementTree as ET 增加换行符 def indent elem level 0 i n level t if len elem if not elem text o
  • presto集群安装

    presto集群安装 整合hive 张映 发表于 2019 11 07 分类目录 hadoop spark scala 标签 hive presto Presto是一个运行在多台服务器上的分布式系统 完整安装包括一个coordinator
  • 微信小程序中使用ECharts--折线图、柱状图、饼图等

    微信小程序开发者的反馈 表示他们强烈需要像 ECharts 这样的可视化工具 但是微信小程序是不支持 DOM 操作的 Canvas 接口也和浏览器不尽相同 因此 ECharts 团队和微信小程序官方团队合作 提供了 ECharts 的微信小