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 相关文章推荐
JQuery 获取和设置Select选项的代码
Feb 07 Javascript
javascript 正则替换 replace(regExp, function)用法
May 22 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
Oct 20 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
Jan 18 Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 Javascript
AngularJS自定义指令详解(有分页插件代码)
Jun 12 Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
VUE+node(express)实现前后端分离
Oct 13 Javascript
写一个Vue loading 插件
Nov 09 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
php基础知识:控制结构
2006/12/13 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
ES6关于Promise的用法详解
2018/05/07 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
Python使用爬虫猜密码
2016/02/19 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
使用Python实现牛顿法求极值
2020/02/10 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
保安员岗位职责
2013/11/17 职场文书
服装公司总经理岗位职责
2013/11/30 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
财务整改报告范文
2014/11/05 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
入党积极分子群众意见
2015/06/01 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS