本文实例讲述了微信小程序图表插件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,
- });
- }
-

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
- });
-

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'
- }
- });
-

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,
- });
-

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
- });
-

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
- }
- }
- });
-

本人是自己查阅资料自己整理,希望对自己和有问题的你们都有帮