小程序 wxchart 使用简单入门

官方参考:

Example - wxCharts使用说明 · Issue #58 · xiaolin3303/wx-charts · GitHub

引入

地址:GitHub - xiaolin3303/wx-charts: 微信小程序图表charts组件,Charts for WeChat Mini Program

把clone下来的文件里dist下面的wxcharts.js或者wxcharts-min.js放到自己文件目录中

常用参数说明

参数说明
 

opts                      Object
opts.canvasId         String Required        对应wxml中的canvasId
opts.type               String Required        图表类型,可选值为:pie、line、column、area、ring、radar
opts.width             Number Required      canvas宽度,单位px
opts.height            Number Required      canvas高度,单位px
opts.legend           Boolean                   是否显示图表下方各类别的标识,默认true
opts.background    String                      canvas背景颜色 ,默认#fff
opts.animation       Boolean                  是否动画展示,默认true
opts.enableScroll   Boolean                是否开启图表可拖拽滚动,默认false,支持 line、area 图表类型(需配合绑定scrollStart, scroll, scrollEnd 方法)
opts.categories     Array Required        数据类别分类 (pie、ring 图表不需要)
opts.dataLabel      Boolean                 是否在图表中显示数据内容值,默认true
opts.dataPointShare  Boolean             是否在图表中显示数据点图形标识,默认true


opts.xAxis            Object                   X轴配置


opts.xAxis.gridColor  String                X轴网格颜色
opts.xAxis.fontColor  String                X轴数据点颜色
opts.xAxis.disableGrid   Boolean         不绘制X轴网格,默认false
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               Y轴网格颜色
opts.yAxis.fontColor  String               Y轴数据点颜色
opts.yAxis.titleFontColor   String        Y轴title颜色
opts.yAxis.disabled   Boolean            不绘制Y轴,默认false
opts.extra             Object                 其它非通用配置项
opts.extra.ringWidth   Number           ring圆环宽度,单位px
opts.extra.lineStyle     String             仅对line、area图表有效,可选值:curve曲线、straight直线,默认straight
opts.extra.column      Object             column图表相关配置
opts.extra.column.width    Number     柱状图每项的图形宽度,单位px
opts.extra.legendTextColor   String    legend文案颜色
opts.series         Array Required        数据列表


数据列表series每项参数说明

dataItem              Object 
dataItem.data       Array Required        饼图、圆环图为Number数据,如果传入null,图表该处出现断点
dataItem.color      String                     不传入则使用系统默认的配色方案
dataItem.name     String                     数据名称
dataItem.format   Function                 自定义显示数据内容


ring 图表相关配置

opts.title                     Object                  仅支持 ring 图表类型
opts.title.name             String                   标题内容
opts.title.fontSize         Number                标题字体大小,单位px
opts.title.color             String                   标题颜色
opts.title.offsetX          Number                标题横向位置偏移量,单位px,默认0
opts.subtitle                Object                  仅支持 ring 图表类型
opts.subtitle.name        String                  副标题内容
opts.subtitle.fontSize    Number               副标题字体大小,单位px
opts.subtitle.color        String                  副标题颜色
opts.subtitle.offsetX     Number               副标题横向位置偏移量,单位px,默认0


radar 图表相关配置

opts.extra.radar                    Object        radar图表相关配置
opts.extra.radar.max             Number       数据区间最大值,用于调整数据显示的比例,默认series data的最大值
opts.extra.radar.labelColor     String         各项标识文案的颜色,默认#666
opts.extra.radar.gridColor      String         雷达图网格颜色,默认#ccc

pie、ring 图表相关配置

opts.disablePieStroke          Boolean       不绘制pie、ring图表各区块的白色分割线,默认false
opts.extra.pie                     Object         pie、ring图表相关配置
opts.extra.pie.offsetAngle    Number       起始角度偏移度数,顺时针方向,起点为3点钟位置(比如要设置起点为12点钟位置,即逆时针偏移90度,传入-90即可),默认0

type:'pie',设置类型简单,改掉初始时type的值就可以了

pie

ring 

line

column

area

radar

1.饼图 pie
2.圆环图 ring
3.线图 line
4.柱状图 column
5.区域图 area
6.雷达图 radar

实例

饼图 type:'pie'
//wxml
<canvas class="cav" canvas-id="pieCanvas"></canvas>

//js
Page({
  data: {
    chart: null
  },
  onLoad: function (options) {
    var wxCharts = require('../../utils/wxcharts-min.js');
    let chart = new wxCharts({
      canvasId: 'pieCanvas',
      type: 'pie',
      series: [{
        name: 'cat1',
        data: 50,
      }, {
        name: 'cat2',
        data: 30,
      }, {
        name: 'cat3',
        data: 1,
      }, {
        name: 'cat4',
        data: 1,
      }, {
        name: 'cat5',
        data: 46,
      }],
      width: 360,
      height: 300,
      dataLabel: true
    });
    this.setData({
      chart: chart,
    })
  }
});

//wxss

.cav{
  width: 100%;
  height: 540px;
  background-color: antiquewhite;
}
饼图效果

圆环

有了饼的经验,这个简单了。把type:'pie'改成 type:'ring' 

//wxml
<canvas class="cav" canvas-id="pieCanvas"></canvas>

//js
Page({
  data: {
    chart: null
  },
  onLoad: function (options) {
    var wxCharts = require('../../utils/wxcharts-min.js');
    let chart = new wxCharts({
      canvasId: 'pieCanvas',
      type: 'ring',
      series: [{
        name: 'cat1',
        data: 50,
      }, {
        name: 'cat2',
        data: 30,
      }, {
        name: 'cat3',
        data: 1,
      }, {
        name: 'cat4',
        data: 1,
      }, {
        name: 'cat5',
        data: 46,
      }],
      width: 360,
      height: 300,
      dataLabel: true
    });
    this.setData({
      chart: chart,
    })
  }
});

//wxss

.cav{
  width: 100%;
  height: 540px;
  background-color: antiquewhite;
}
圆环效果图

柱状图:
//wxss
.cav{
    width: 100%;
    height: 540px;
    background-color: antiquewhite;
}

//wxml
<canvas class="cav" canvas-id="column"></canvas>

js
Page({
  data: {
    colChart: null,
  },
  onLoad: function (options) {
    var wxCharts = require('../../utils/wxcharts-min.js');
  
    let col = new wxCharts({
      canvasId: 'column',
      type: 'column',
      categories: ['2012', '2013', '2014', '2015', '2016', '2017'],
      series: [{
        name: '成交量1',
        data: [15, 20, 45, 37, 4, 80]
      }, {
        name: '成交量2',
        data: [70, 40, 65, 100, 34, 18]
      }],
      yAxis: {
        format: function (val) {
          return val + '万';
        }
      },
      width: 320,
      height: 200
    });

    this.setData({
      colChart: col
    })
  }
});

line 线条

效果:

案例源码: 

//wxml
<view>
  <canvas canvas-id="linec" class="chart"> </canvas>
</view>

//wxss
.chart {
  width: 700rpx;
  height: 600rpx;
}

//js
const wxCharts = require("../../../utils/wxcharts.js")

let areaChart;
Page({
  LoadTu() {
    areaChart = new wxCharts({
      canvasId: 'linec', type: 'line',
      categories: this.data.chartDatas.day7,
      animation: true,
      series: [{
        name: '洗涤费',
        // 线条的颜色
        color: '#FF8A06',
        data: this.data.chartDatas.money7,
        format: function (val) {
          return val.toFixed(1) + '';
        }
      }],
      dataPointShape: true,
      xAxis: {
        fontColor: '#7D7D7F',
        // 不显示x轴 刻度点
        disableGrid: true,
      },
      yAxis: {
        // y轴文字颜色,display:true不显示
        fontColor: '#FF8A06',
        // 不显示y轴
        disabled: true
      },
      // 非通用配置
      extra: {
        legendTextColor: '#c427b1',
        lineWidth: 10,
        // 线条形状:curve 圆滑
        lineStyle: 'curve'
      },
      // dataPointShape:false,
      legend: false,
      width: 320, height: 200,
    });

    return this;
  },

  data: {
    menus: [],
    ordermsg: {},
    swiper_h: 0,
    chartDatas: {
      money7: [6.4, 0, 0, 0, 18.71, 5.6, 0],
      day7: ["13日", "14日", "15日", "16日", "17日", "18日", "19日"]
    }
  },
  onLoad: function (options) {
    this.LoadTu()
  }
});