最近做小程序需要统计一些数据,需要用到图表插件,所有在网上找了找,找到了wx-charts这个插件,看着挺好用的,和jq的echarts类似,所有选择用这个插件来画图表,wx-charts是基于canvas绘制,体积小巧,支持的比较多,有饼图、圆环图、线图、柱状图、区域图、雷达图。

1、首先在https://github.com/xiaolin3303/wx-charts.git下载wx-charts插件,里面dist文件夹里有一个wxcharts.js和wxcharts-min.js两个文件,使用哪一个都行,放在自己项目的utils文件夹下

2、在需要使用的页面js中引入插件

let Charts = require('../../../utils/wxcharts.js'); //引入wxChart文件

3、在wxml文件中定义canvas,注意:canvas-id与js当中的new Charts选项当中的canvasId必须要一致才行

opts Object

opts.canvasId String required 微信小程序canvas-id

opts.width Number required canvas宽度,单位为px

opts.height Number required canvas高度,单位为px

opts.background String canvas背景颜色(如果页面背景颜色不是白色请设置为页面的背景颜色,默认#ffffff)

opts.enableScroll Boolean 是否开启图表可拖拽滚动 默认false 支持line, area图表类型(需配合绑定scrollStart, scroll, scrollEnd方法)

opts.title Object (only for ring chart)

opts.title.name String 标题内容

opts.title.fontSize Number 标题字体大小(可选,单位为px)

opts.title.color String 标题颜色(可选)

opts.title.offsetX Number 标题横向位置偏移量,单位px,默认0

opts.subtitle Object (only for ring chart)

opts.subtitle.name String 副标题内容

opts.subtitle.offsetX Number 副标题横向位置偏移量,单位px,默认0

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, ring, radar

opts.categories Array required (饼图、圆环图不需要) 数据类别分类

opts.dataLabel Boolean default true 是否在图表中显示数据内容值

opts.dataPointShape Boolean default true 是否在图表中显示数据点图形标识

opts.disablePieStroke Boolean default false 不绘制饼图(圆环图)各区块的白色分割线

opts.xAxis Object X轴配置

opts.xAxis.gridColor String 例如#7cb5ec default #cccccc X轴网格颜色

opts.xAxis.fontColor String 例如#7cb5ec default #666666 X轴数据点颜色

opts.xAxis.disableGrid Boolean default false 不绘制X轴网格

opts.xAxis.type String 可选值calibration(刻度) 默认为包含样式

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.gridColor String 例如#7cb5ec default #cccccc Y轴网格颜色

opts.yAxis.fontColor String 例如#7cb5ec default #666666 Y轴数据点颜色

opts.yAxis.titleFontColor String 例如#7cb5ec default #333333 Y轴title颜色

opts.yAxis.disabled Boolean default false 不绘制Y轴

opts.extra Object 其他非通用配置项

opts.extra.ringWidth Number ringChart圆环宽度,单位为px

opts.extra.lineStyle String (仅对line, area图表有效) 可选值:curve曲线,straight直线 (default)

opts.extra.column Object 柱状图相关配置

opts.extra.column.width Number 柱状图每项的图形宽度,单位为px

opts.extra.legendTextColor String 例如#7cb5ec default #cccccc legend文案颜色

opts.extra.radar Object 雷达图相关配置

opts.extra.radar.max Number, 默认为series data的最大值,数据区间最大值,用于调整数据显示的比例

opts.extra.radar.labelColor String, 默认为#666666, 各项标识文案的颜色

opts.extra.radar.gridColor String, 默认为#cccccc, 雷达图网格颜色

opts.extra.pie Object 饼图、圆环图相关配置

opts.extra.pie.offsetAngle Number, 默认为0, 起始角度偏移度数,顺时针方向,起点为3点钟位置(比如要设置起点为12点钟位置,即逆时针偏移90度,传入-90即可)

opts.series Array required 数据列表

数据列表每项结构定义

dataItem Object

dataItem.data Array required (饼图、圆环图为Number) 数据,如果传入null图表该处出现断点

dataItem.color String 例如#7cb5ec 不传入则使用系统默认配色方案

dataItem.name String 数据名称

dateItem.format Function 自定义显示数据内容

updateData(data) 更新图表数据,data: object,data.categories(可选,具体见参数说明),data.series(可选,具体见参数说明),data.title(可选,具体见参数说明),data.subtitle(可选,具体见参数说明)

stopAnimation() 停止当前正在进行的动画效果,直接展示渲染的最终结果

addEventListener(type, listener) 添加事件监听,type: String事件类型,listener: function 处理方法

getCurrentDataIndex(e) 获取图表中点击时的数据序列编号(-1表示未找到对应的数据区域), e: Object微信小程序标准事件,需要手动的去绑定touch事件,具体可参考wx-charts-demo中column图示例

showToolTip(e, options?) 图表中展示数据详细内容(目前仅支持line和area图表类型),e: Object微信小程序标准事件,options: Object可选,tooltip的自定义配置,支持option.background,默认为#000000; option.format, function类型,接受两个传入的参数,seriesItem(Object, 包括seriesItem.name以及seriesItem.data)和category,可自定义tooltip显示内容。具体可参考wx-charts-demo中line图示例

scrollStart(e), scroll(e), scrollEnd(e)设置支持图表拖拽系列事件(支持line, area, column),具体参考wx-charts-demo中ScrollLine图示例

4、wx-charts图表插件示例(在js文件的onload方法中写即可)

饼图pie chart

var Charts = require('charts.js');newCharts({

canvasId:'pieCanvas',

type:'pie',

series: [{

name:'成交量1',

data:15,

}, {

name:'成交量2',

data:35,

}, {

name:'成交量3',

data:78,

}, {

name:'成交量4',

data:63,

}],

width:640,

height:400,

dataLabel:false});

线图line chart

newCharts({

canvasId:'lineCanvas',

type:'line',

categories: ['2012', '2013', '2014', '2015', '2016', '2017'],

series: [{

name:'成交量1',

data: [0.15, 0.2, 0.45, 0.37, 0.4, 0.8],

format:function(val) {return val.toFixed(2) + '万';

}

}, {

name:'成交量2',

data: [0.30, 0.37, 0.65, 0.78, 0.69, 0.94],

format:function(val) {return val.toFixed(2) + '万';

}

}],

yAxis: {

title:'成交金额 (万元)',

format:function(val) {return val.toFixed(2);

},

min:0},

width:640,

height:400});

柱状图columnChart

newCharts({

canvasId:'columnCanvas',

type:'column',

categories: ['2016-08', '2016-09', '2016-10', '2016-11', '2016-12', '2017'],

series: [{

name:'成交量1',

data: [15, 20, 45, 37, 4, 80]

}, {

name:'成交量2',

data: [70, 40, 65, 100, 34, 18]

}, {

name:'成交量3',

data: [70, 40, 65, 100, 34, 18]

}, {

name:'成交量4',

data: [70, 40, 65, 100, 34, 18]

}],

yAxis: {

format:function(val) {return val + '万';

}

},

width:640,

height:400,

dataLabel:false});

区域图areaChart

newCharts({

canvasId:'areaCanvas',

type:'area',

categories: ['2016-08', '2016-09', '2016-10', '2016-11', '2016-12', '2017'],

series: [{

name:'成交量1',

data: [70, 40, 65, 100, 34, 18],

format:function(val) {return val.toFixed(2) + '万';

}

}, {

name:'成交量2',

data: [15, 20, 45, 37, 4, 80],

format:function(val) {return val.toFixed(2) + '万';

}

}],

yAxis: {

format:function(val) {return val + '万';

}

},

width:640,

height:400});

雷达图radar Chart

newwxCharts({

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}

}

});

下面是自己项目中的代码,先上效果图

wxml

wxss

/*折线*/.chart{width:95%;height:550rpx;margin:0 auto;padding-top:50rpx;background:#fff;

}.chart-info{height:500rpx;

}.canvas{width:380px;height:400px;

}

js

let Charts = require('../../../utils/wxcharts.js'); //引入wxChart文件

var app =getApp();var lineChart = null;

Page({/**

* 页面的初始数据*/data: {

date:''},/**

* 生命周期函数--监听页面加载*/onLoad:function(options) {//获取系统当前时间

let that = this

var myDate = newDate();var date =myDate.toLocaleDateString();

console.log(date)

that.setData({

date: date,//选择时间

})//折线图

var windowWidth = '', windowHeight = ''; //定义宽高

try{var res = wx.getSystemInfoSync(); //试图获取屏幕宽高数据

windowWidth = res.windowWidth / 750 * 700 //以设计图750为主进行比例算换

windowHeight = res.windowWidth / 750 * 500 //以设计图750为主进行比例算换

} catch(e) {

console.error('getSystemInfoSync failed!'); //如果获取失败

}

lineChart= newCharts({

canvasId:'lineCanvas',

type:'line',

animation:true, //是否开启动画

categories: ['06', '07', '08', '09', '10', '11', '12'],

series: [{

name:'月教师好评情况',

data: [15, 20, 45, 37, 40, 80, 25],

format:function(val) {return val.toFixed(2) + '分';

}

}],

xAxis: {//是否隐藏x轴分割线

disableGrid: true,

},

yAxis: {

title:'教师好评总分数',

format:function(val) {return val.toFixed(2);

},

},

width: windowWidth,//图表展示内容宽度

height: windowHeight, //图表展示内容高度

dataLabel: true, //是否在图表上直接显示数据

dataPointShape: true, //是否在图标上显示数据点标志

extra: {

lineStyle:'curve' //曲线

},

});

},/**

* 点击数据点显示对应的数据*/touchHandler:function(e) {

lineChart.showToolTip(e, {//background: '#7cb5ec',

format: function(item, category) {return category + ' ' + item.name + ':' +item.data

}

});

},

})

这些都是自己参考网上整理出来的,希望对大家有所帮助

wxml 点击图片下载_小程序图表插件相关推荐

  1. wxml 点击图片下载_云存储之上传图片和展示图片(小程序云开发)

    1.云存储介绍 2.demo代码(上传图片/文件) cloud.wxml 云存储 上传图片 cloud.js // miniprogram/pages/cloud/cloud.js const db ...

  2. wxml 点击图片下载_微信小程序通过ipfs-api 实现图片文件在私有ipfs网络的上传与下载显示...

    1.快速搭建IPFS私有网络(docker) 拉取镜像 docker pull docker.io/ipfs/go-ipfs:latest 编写yaml文件 创建两个文件夹并分别命名为:ipfs_no ...

  3. wxml 点击图片下载_跟着做,零基础也能做出自己的小程序

    为什么要学习编程? 我前几天问一个产品经理. 而他给我的答复是:据说这世上有三种人的思考方式截然不同:律师.程序员和其他. 对我而言,有机会体验程序员那种思维,而且有利于工作,何乐而不为? 我是一名新 ...

  4. 小程序 微信统计表格_微信小程序图表插件(wx-charts)

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

  5. wx-charts 微信小程序图表插件

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

  6. 微信小程序----图表插件示例用法(wx-charts)

    微信小程序----图表插件示例用法(wx-charts) 参考链接:https://blog.csdn.net/JxufeCarol/article/details/117718321 全部图形示例链 ...

  7. 微信小程序图表插件 - wx-charts

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

  8. 微信小程序图表插件(wx-charts)

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

  9. 微信小程序点播插件_小程序直播插件接入 - 微信小程序

    当下直播带货还是挺火的,对于直播项目理解拉流和推流基本就能搞定.之前小程序直播插件未开放的时候,当时是引入第三方直播服务进行做的:当下又有直播需求,这次便把小程序直播插件模块体验了下:小程序直播插件还 ...

最新文章

  1. 《Visual C++ 开发从入门到精通》——2.7 变量
  2. php utf不执行,PHP和UTF-8-为什么邮件不起作用?
  3. 007--C++动态内存(数组)
  4. Parcel是个好玩意儿
  5. 18款 非常实用 jquery幻灯片图片切换
  6. 谈论源码_当我们谈论软件“替代品”时,这是什么意思?
  7. LeetCode-665:非递减数列
  8. 什么样的领导最有魅力?
  9. wireshark----教你如何抓包
  10. Python打包成.exe文件详细实例
  11. stream常用操作
  12. 590. N叉树的后序遍历
  13. grid report mysql_Grid++Report报表工具
  14. imshow、image以及imagesc的区别
  15. 华为官方解锁工具_新年重磅更新来袭 华为Mate20 Pro微信人脸支付功能已上线
  16. LDA模型理解(一)
  17. 网易云linux版是什么格式,网易云音乐发布Linux版本
  18. 标签、画像设计与模型落地
  19. lua入门之二table
  20. 【实例】用PHP制作一个简单的日历

热门文章

  1. FP6276兼容芯片可过EMI认证测试
  2. 分享一款电脑使用的二维码/条码扫描生成软件--二维码识别精灵
  3. java excel 判断组重复_Java判断Excel某列是否有重复值
  4. 数据库(Mysql)----mysql查询练习(2、实操)
  5. 突破Flutter私有化仓库100M限制-Hosted packages must be smaller than 100 MB
  6. 初识flowable工作流-实现简单请假流程SpringBoot+VUE
  7. redis基数树rax源码分析(1)
  8. C++实现简单的停车场管理系统
  9. 信号量(Semaphore)、闭锁(Latch)、栅栏(Barrier)
  10. 企业网络及应用层安全防护技术精要(Part I)