echarts使用自定义图形实现3D柱状图

先看下效果吧

custom3dBar

实现思路

  1. 使用graphic创建并注册自定义图形。根据每组的数据值,得到一个对应的点,从点出发用canvas绘制一组图形,分别为
    顶部的菱形
    top
    const CubeTop = echarts.graphic.extendShape({
         
         
      buildPath: function (ctx, shape) {
         
         
         const c1 = [shape.x, shape.y]; // 下
         const c2 = [shape.x + 9, shape.y - 7]; // 右
         const c3 = [shape.x, shape.y - 12]; // 上
         const c4 = [shape.x - 9, shape.y - 7]; // 左
         ctx
            .moveTo(c1[0], c1[1])
            .lineTo(c2[0], c2[1])
            .lineTo(c3[0], c3[1])
            .lineTo(c4[0], c4[1])
            .closePath();
      }
    });
    
    左侧的四边形 left
    const CubeLeft = echarts.graphic.extendShape({
         
         
       buildPath: function (ctx, shape) {
         
         
          const xAxisPoint = shape.xAxisPoint;
          const c0 = [shape.x, shape.y]; // 右上
          const c1 = [shape.x - 9, shape.y - 7]; //左上
          const c2 = [xAxisPoint[0] - 9, xAxisPoint[1] - 6]; // 左下
          const c3 = [xAxisPoint[0], xAxisPoint[1]]; // 右下
          ctx
              .moveTo(c0[0], c0[1])
              .lineTo(c1[0], c1[1])
              .lineTo(c2[0], c2[1])
              .lineTo(c3[0], c3[1])
              .closePath();
       }
    });
    
    右侧的四边形
    right
    const CubeRight = echarts.graphic.extendShape({
         
         
       buildPath: function (ctx, shape) {
         
         
          const xAxisPoint = shape.xAxisPoint;
          const c1 = [shape.x, shape.y]; // 左上
          const c2 = [xAxisPoint
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值