微信小程序图表插件wx-charts用法实例详解


Posted in Javascript onMay 20, 2019

本文实例讲述了微信小程序图表插件wx-charts用法。分享给大家供大家参考,具体如下:

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

支持图标类型

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

如何使用?

1. 直接引用编译好的文件 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.Encode手动解码技巧
Jul 14 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
Aug 21 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
Apr 27 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
基于Bootstrap实现城市三级联动
Nov 23 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 Javascript
Angularjs实现数组随机排序的方法
Oct 02 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
JS实现灯泡开关特效
Mar 30 Javascript
24个解决实际问题的ES6代码片段(小结)
Feb 02 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
May 20 #Javascript
vue3.0 搭建项目总结(详细步骤)
May 20 #Javascript
vue-cli webpack配置文件分析
May 20 #Javascript
微信小程序开发之左右分栏效果的实例代码
May 20 #Javascript
微信小程序rich-text富文本用法实例分析
May 20 #Javascript
bootstrap中的导航条实例代码详解
May 20 #Javascript
详解小程序云开发数据库
May 20 #Javascript
You might like
同一空间绑定多个域名而实现访问不同页面的PHP代码
2006/12/06 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
php7 新增功能实例总结
2020/05/25 PHP
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
python中遍历文件的3个方法
2014/09/02 Python
Python实现字典依据value排序
2016/02/24 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
pip命令无法使用的解决方法
2018/06/12 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
接口可以包含哪些成员
2012/09/30 面试题
运动会班级口号霸气押韵
2015/12/24 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang