wx-charts 微信小程序图表插件的具体使用


Posted in Javascript onAugust 18, 2019

微信小程序图表插件(wx-charts)基于canvas绘制,体积小巧,支持图表类型饼图、线图、柱状图 、区域图等图表图形绘制,目前wx-charts是微信小程序图表插件中比较强大好使的一个

支持图标类型

  • 饼图 pie
  • 圆环图 ring
  • 线图 line
  • 柱状图 column
  • 区域图 area
  • 雷达图 radar

如何使用?

直接引用编译好的文件 dist/charts.js(js下载地址)

.wxml中定义

<canvas canvas-id="lineCanvas" disable-scroll="true" class="canvas"></canvas>

canvas-id与new wxCharts({canvasId:”})中canvasId一致

2. 命令行

git clone github.com/xiaolin3303/wx-charts.git
npm install rollup -g
npm install
rollup -c 或者 rollup --config rollup.config.prod.js

参数说明

opts             Object
opts.canvasId        String required          微信小程序canvas-id
opts.width          Number required        canvas宽度,单位为px
opts.height         Number required        canvas高度,单位为px
opts.title          Object      (only for ring chart)
opts.title.name       String      标题内容
opts.title.fontSize     Number      标题字体大小(可选,单位为px)
opts.title.color       String      标题颜色(可选)
opts.subtitle        Object     (only for ring chart)
opts.subtitle.name      String      副标题内容
opts.subtitle.fontSize    Number     副标题字体大小(可选,单位为px)
opts.subtitle.color     String     副标题颜色(可选)
opts.animation        Boolean default true     是否动画展示
opts.legend         Boolen default true    是否显示图表下方各类别的标识
opts.type          String required 图表类型,可选值为pie, line, column, area……
opts.categories       Array required    (饼图、圆环图不需要) 数据类别分类
opts.dataLabel        Boolean default true   是否在图表中显示数据内容值
opts.dataPointShape     Boolean default true  是否在图表中显示数据点图形标识
opts.xAxis          Object    X轴配置
opts.xAxis.disableGrid    Boolean default false   不绘制X轴网格
opts.yAxis          Object  Y轴配置
opts.yAxis.format      Function      自定义Y轴文案显示
opts.yAxis.min        Number    Y轴起始值
opts.yAxis.max        Number      Y轴终止值
opts.yAxis.title       String    Y轴title
opts.yAxis.disabled     Boolean default false    不绘制Y轴
opts.series         Array required    数据列表

数据列表每项结构定义

dataItem           Object
dataItem.data         Array required (饼图、圆环图为Number) 数据
dataItem.color        String 例如#7cb5ec 不传入则使用系统默认配色方案
dataItem.name         String 数据名称
dateItem.format        Function 自定义显示数据内容

详见demo(具体demo git地址)

1.pie

new wxCharts({
  animation: true, //是否有动画
  canvasId: 'pieCanvas',
  type: 'pie',
  series: [{
    name: '成交量1',
    data: 15,
  }, {
    name: '成交量2',
    data: 35,
  }, {
    name: '成交量3',
    data: 78,
  }],
  width: windowWidth,
  height: 300,
  dataLabel: true,
 });
}

wx-charts 微信小程序图表插件的具体使用 

2. ring

new wxCharts({
  animation: true,
  canvasId: 'ringCanvas',
  type: 'ring',
  extra: {
    ringWidth: 25,
    pie: {
      offsetAngle: -45
    }
  },
  title: {
    name: '70%',
    color: '#7cb5ec',
    fontSize: 25
  },
  subtitle: {
    name: '收益率',
    color: '#666666',
    fontSize: 15
  },
  series: [{
    name: '成交量1',
    data: 15,
    stroke: false
  }, {
    name: '成交量2',
    data: 35,
     stroke: false
  }, {
    name: '成交量3',
    data: 78,
    stroke: false
  }, {
    name: '成交量4',
    data: 63,
     stroke: false
  }],
  disablePieStroke: true,
  width: windowWidth,
  height: 200,
  dataLabel: false,
  legend: false,
  padding: 0
});

wx-charts 微信小程序图表插件的具体使用 

3. line

new wxCharts({
  canvasId: 'lineCanvas',
  type: 'line',
  categories: simulationData.categories,
  animation: true,
  background: '#f5f5f5',
  series: [{
    name: '成交量1',
    data: simulationData.data,
    format: function (val, name) {
      return val.toFixed(2) + '万';
    }
  }, {
    name: '成交量2',
    data: [2, 0, 0, 3, null, 4, 0, 0, 2, 0],
    format: function (val, name) {
      return val.toFixed(2) + '万';
    }
  }],
  xAxis: {
    disableGrid: true
  },
  yAxis: {
    title: '成交金额 (万元)',
    format: function (val) {
      return val.toFixed(2);
    },
    min: 0
  },
  width: windowWidth,
  height: 200,
  dataLabel: false,
  dataPointShape: true,
  extra: {
    lineStyle: 'curve'
  }
});

wx-charts 微信小程序图表插件的具体使用 

4. column

new wxCharts({
  canvasId: 'columnCanvas',
  type: 'column',
  animation: true,
  categories: chartData.main.categories,
  series: [{
    name: '成交量',
    data: chartData.main.data,
    format: function (val, name) {
      return val.toFixed(2) + '万';
    }
  }],
  yAxis: {
    format: function (val) {
      return val + '万';
    },
    title: 'hello',
    min: 0
  },
  xAxis: {
    disableGrid: false,
    type: 'calibration'
  },
  extra: {
    column: {
      width: 15
    }
  },
  width: windowWidth,
  height: 200,
});

wx-charts 微信小程序图表插件的具体使用 

5. area

new wxCharts({
  canvasId: 'areaCanvas',
  type: 'area',
  categories: ['1', '2', '3', '4', '5', '6'],
  animation: true,
  series: [{
    name: '成交量1',
    data: [32, 45, 0, 56, 33, 34],
    format: function (val) {
      return val.toFixed(2) + '万';
    }
  }, {
   name: '成交量2',
   data: [15, 20, 45, 37, 4, 80],
   format: function (val) {
    return val.toFixed(2) + '万';
   },
  }],
  yAxis: {
    title: '成交金额 (万元)',
    format: function (val) {
      return val.toFixed(2);
    },
    min: 0,
    fontColor: '#8085e9',
    gridColor: '#8085e9',
    titleFontColor: '#f7a35c'
  },
  xAxis: {
    fontColor: '#7cb5ec',
    gridColor: '#7cb5ec'
  },
  extra: {
    legendTextColor: '#cb2431'
  },
  width: windowWidth,
  height: 200
});

wx-charts 微信小程序图表插件的具体使用 

6.radar

new wxCharts({
  canvasId: 'radarCanvas',
  type: 'radar',
  categories: ['1', '2', '3', '4', '5', '6'],
  series: [{
    name: '成交量1',
    data: [90, 110, 125, 95, 87, 122]
  }],
  width: windowWidth,
  height: 200,
  extra: {
    radar: {
      max: 150
    }
  }
});

wx-charts 微信小程序图表插件的具体使用

本人是自己查阅资料自己整理,希望对自己和有问题的你们都有帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript delete 属性的使用
Oct 08 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
JavaScript基础篇(6)之函数表达式闭包
Dec 11 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
为什么使用koa2搭建微信第三方公众平台的原因
May 16 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
Nov 26 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
May 28 Javascript
vue组件三大核心概念图文详解
May 30 Javascript
vue 解决异步数据更新问题
Oct 29 Javascript
JavaScript实现消消乐的源代码
Jan 12 Javascript
微信小程序canvas绘制圆角base64图片的实现
Aug 18 #Javascript
Node.js从字符串生成文件流的实现方法
Aug 18 #Javascript
微信公众号生成新浪短网址的实现(快速生成)
Aug 18 #Javascript
js 实现 list转换成tree的方法示例(数组到树)
Aug 18 #Javascript
详解ES6 Promise的生命周期和创建
Aug 18 #Javascript
vue-cli3配置与跨域处理方法
Aug 17 #Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
Aug 17 #Javascript
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
js中的面向对象入门
2017/03/06 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
python正则表达式之作业计算器
2016/03/18 Python
python编写分类决策树的代码
2017/12/21 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
python版百度语音识别功能
2019/07/09 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
pytorch 计算Parameter和FLOP的操作
2021/03/04 Python
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
你们项目是如何进行变更控制的
2015/08/26 面试题
采购员的工作职责
2013/12/26 职场文书
晨会主持词
2014/03/17 职场文书
大班开学家长寄语
2014/04/04 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
教育实习指导教师评语
2014/12/31 职场文书
民事起诉状范文
2015/05/19 职场文书
埃及王子观后感
2015/06/16 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
500字作文之关于爸爸
2019/11/14 职场文书