微信小程序使用echarts下拉画布从新渲染

1,在Apache ECharts官网找到自己想要的图表,这里需要注意的是从后台拿到的数据格式要与你的图表的数据格式一致,

2,将下载的文件名为“ec-canvas”Copy到你的微信小程序中,在需要的json中引入

  "usingComponents": {
        "ec-canvas":"../ec-canvas/ec-canvas"
    }

wxml中

<ec-canvas id="echart-pie-three" disable-scroll="{{true}}" ec="{{costincome}}"></ec-canvas>

js中

import * as echarts from '../ec-canvas/echarts.min';

//饼状图
function setOption(chart,data){
    var option = {
    
        legend: {
          top: 'bottom'
        },
        tooltip: {
          trigger: 'item',
          formatter: '{b} : {c} ({d}%)'
        },
        toolbox: {
          show: true,
          feature: {
            mark: { show: true },
            dataView: { show: true, readOnly: false },
            restore: { show: true },
            saveAsImage: { show: true }
          }
        },
        series: [
          {
            name: 'Nightingale Chart',
            type: 'pie',
            radius: [5, 60],
            center: ['50%', '50%'],
            bottom: 50,
            roseType: 'area',
            itemStyle: {
              borderRadius: 8
            },
            data: data
          }
        ]
      
        };
        chart.setOption(option);
        return chart;
  }


page({

    data:{
        costincome:{
                //懒加载,手动初始化图表
            lazyLoad: true
                }
        

    },



      /**
     * 生命周期函数--监听页面加载
     */
      onLoad(options) {
        
        this.inti();
    },

    inti(){
            //获取后台数据如:
        data:[
            { value: 40, name: '日用品' },
            { value: 35, name: '生活用品' },
            { value: 32, name: '旅行' },
            { value: 30, name: '购物' },
            { value: 28, name: '送礼' },
            { value: 26, name: '三餐' },
            { value: 22, name: '出行' },
            { value: 38, name: '学习用品' }
              ],

    //调用initchart方法
        this.initchart(data)
            
           }

    initchart:function(data){
            //wxml中的id"echart-pie-two",,不要写成“canvas-id”的值
      let ecComponent = this.selectComponent('#echart-pie-two');
        ecComponent.init((canvas, width, height, dpr) => {
          // 初始化图表
          const chart = echarts.init(canvas, null, {
            width: width,
            height: height,
            devicePixelRatio: dpr // new
          });
          //调用setOption()方法,并且将从后台拿到的数据传到Echarts
          setOption(chart,data);
          return chart;
        });

      },

})

最后成品展示

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值