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制作LED 时钟特效
Feb 01 Javascript
FullCalendar日历插件应用之数据展现(一)
Dec 23 Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
JS实现控制文本框的内容
Jul 10 Javascript
老生常谈JavaScript 函数表达式
Sep 01 Javascript
完美实现js选项卡切换效果(二)
Mar 08 Javascript
Vue列表页渲染优化详解
Jul 24 Javascript
微信小程序实现蓝牙打印
Sep 23 Javascript
vue 中固定导航栏的实例代码
Nov 01 Javascript
JavaScript计算正方形面积
Nov 26 Javascript
vue 项目软键盘回车触发搜索事件
Sep 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
基于PHP文件操作的详解
2013/06/05 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
网站上面有这种切换效果
2006/06/26 Javascript
js 日期转换成中文格式的函数
2009/07/07 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
JavaScript常用工具方法封装
2019/02/12 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
Python的Django框架中的Context使用
2015/07/15 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
python如何为创建大量实例节省内存
2018/03/20 Python
Python字符串的一些操作方法总结
2019/06/10 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书