echarts5 3D柱状图

这篇具有很好参考价值的文章主要介绍了echarts5 3D柱状图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<div ref="echartsQinggan" style="width: 100%;height: 100%;"></div>

    async getData() {

///调用接口获取数据

   this.Count1=[1,2,3]

 this.Count2=[4,5,6]

 this.Count3=[7,null,8]

this.$nextTick(() => {

        this.qinganFun()

      })

    },

    qinganFun() {

      // 获取DOM节点并初始化

      const hotTheme = this.$echarts.init(this.$refs.echartsQinggan)

      const dataArr = {

        xdata: this.xData,

        Count1: this.Count1,

        Count2: this.Count2,

        Count3: this.Count3,

      }

      console.log("dataArr", dataArr);

      const offsetX = 16;

      const offsetY = 8;

      // 绘制左侧面

      const CubeLeft = this.$echarts.graphic.extendShape({

        shape: {

          x: 0,

          y: 0,

        },

        buildPath: function (ctx, shape) {

          const xAxisPoint = shape.xAxisPoint;

          const c0 = [shape.x, shape.y];

          const c1 = [shape.x - offsetX, shape.y - offsetY];

          const c2 = [xAxisPoint[0] - offsetX, xAxisPoint[1] - offsetY];

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

        },

      });

      // 绘制右侧面

      const CubeRight = this.$echarts.graphic.extendShape({

        shape: {

          x: 0,

          y: 0,

          xAxisPoint: 30

        },

        buildPath: function (ctx, shape) {

          const xAxisPoint = shape.xAxisPoint;

          const c1 = [shape.x, shape.y];

          const c2 = [xAxisPoint[0], xAxisPoint[1]];

          const c3 = [xAxisPoint[0] + offsetX, xAxisPoint[1] - offsetY];

          const c4 = [shape.x + offsetX, shape.y - offsetY];

          ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath();

        },

      });

      // 绘制顶面

      const CubeTop = this.$echarts.graphic.extendShape({

        shape: {

          x: 0,

          y: 0,

        },

        buildPath: function (ctx, shape) {

          const c1 = [shape.x, shape.y];

          const c2 = [shape.x + offsetX, shape.y - offsetY]; //右点

          const c3 = [shape.x, shape.y - offsetX];

          const c4 = [shape.x - offsetX, shape.y - offsetY];

          ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath();

        },

      });

      // 注册三个面图形

      this.$echarts.graphic.registerShape('CubeLeft', CubeLeft);

      this.$echarts.graphic.registerShape('CubeRight', CubeRight);

      this.$echarts.graphic.registerShape('CubeTop', CubeTop);

      hotTheme.setOption({

        tooltip: {

          trigger: 'axis',

         .........

//如果你的 tooltip要重新规定颜色可以用formatter

        },

        legend: {

          ............

//如果你的legend要重新规定颜色可以把颜色放到data属性里

        },

        grid: {

         ...........

        },

        xAxis: {

          data: dataArr.xdata,

       ..........

        },

        yAxis: {

          type: 'value',

           ..........

        },

//根据你要展示几根柱子算自己的偏移量

        series: [

          {

            name: 'a',

            type: 'custom',

            renderItem: (params, api) => {

              const location = api.coord([api.value(0), api.value(1)]);

              return {

                type: 'group',

                // x:  render_x,

                x:this.offset1[params.dataIndex], //根据函数的索引动态改变索引为null时柱子的偏移量

                z: 1,

                // z:20,

                children: [

                  {

                    type: 'CubeLeft',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(16, 115, 191, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(21, 202, 203, 1)',

                        }

                      ]),

                    },

                  },

                  {

                    type: 'CubeRight',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(21, 140, 232, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(30, 244, 245, 1)',

                        },

                      ]),

                    },

                  },

                  {

                    type: 'CubeTop',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(23, 152, 252, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(23, 152, 252, 1)',

                        },

                      ]),

                    },

                  },

                ],

              };

            },

            data:dataArr.Count1,

          },

          {

            name: 'b',

            type: 'custom',

            renderItem: (params, api) => {

              const location = api.coord([api.value(0), api.value(1)]);

              return {

                type: 'group',

                x:this.offset2[params.dataIndex],

                z: 2,

                // barWidth: 30,

                children: [

                  {

                    type: 'CubeLeft',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(196, 116, 45, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(255, 194, 56, 1)',

                        }

                      ]),

                    },

                  },

                  {

                    type: 'CubeRight',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(230, 136, 53, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(253, 209, 108, 1)',

                        },

                      ]),

                    },

                  },

                  {

                    type: 'CubeTop',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(241, 175, 61, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(241, 175, 61, 1)',

                        },

                      ]),

                    },

                  },

                ],

              };

            },

            data: dataArr.Count2,

          },

          {

            name: 'c',

            type: 'custom',

            renderItem: (params, api) => {

              const location = api.coord([api.value(0), api.value(1)]);

              return {

                type: 'group',

                x: 0,

                z: 3,

                // z:15,

                children: [

                  {

                    type: 'CubeLeft',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(13, 189, 119, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(54, 221, 154, 1)',

                        }

                      ]),

                    },

                  },

                  {

                    type: 'CubeRight',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(17, 202, 128, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(73, 224, 164, 1)',

                        },

                      ]),

                    },

                  },

                  {

                    type: 'CubeTop',

                    shape: {

                      api,

                      xValue: api.value(0),

                      yValue: api.value(1),

                      x: location[0],

                      y: location[1],

                      xAxisPoint: api.coord([api.value(0), 0]),

                    },

                    style: {

                      fill: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [

                        {

                          offset: 0,

                          color: 'rgba(35, 205, 137, 1)',

                        },

                        {

                          offset: 1,

                          color: 'rgba(35, 205, 137, 1)',

                        },

                      ]),

                    },

                  },

                ],

              };

            },

            data: dataArr.Count3,

          },

        ]

      })

    }

  }

}

</script>文章来源地址https://www.toymoban.com/news/detail-841123.html

到了这里,关于echarts5 3D柱状图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • echarts 实现 3d 柱状图

    实现要求 能够调整大小 实现3d效果,可以改变颜色 前置环境 效果 调整大小和颜色 代码 baseCharts.vue 使用 10.12 更新 效果 代码 使用

    2024年02月11日
    浏览(46)
  • echarts看板效果图:流光折线图、3d柱状图、3d饼图、3d地图

    现在展厅的大看板是越花里胡哨越好,不过真的挺难做的。好在可以百度找到一些大神的作品进行参考。 下面的内容都是基于 echarts 5.3.3 和 vue3 。另外demo都是参考别人的案例。 效果图 代码 本质上是两条线组合在一起的,一条是静态的线条,一条是动态的线条。相关属性都

    2024年02月06日
    浏览(46)
  • vue使用echarts与echarts-gl实现3d地图与 3d柱状图

    目录 前言 一、下载echarts与echarts gl 二、vue引入与页面使用 1.引入 2.页面引入echarts-gl 三、下载地图数据 四、使用地图 1、html初始化地图放入位置: 2、data创建变量 3、创建地图 4、钩子函数渲染地图 5、渲染完成效果 总结 提示:本项目使用vue,请提前搭建好vue项目 本次需求

    2024年02月12日
    浏览(42)
  • Echarts 3D立体柱状图(源码+例图)

    Echarts 3D立体柱状图,3D长方体柱状图,直接cope源码可用(源码+例图) 废话不多说,直接上代码!!! 

    2024年02月15日
    浏览(44)
  • echart 3d立体颜色渐变柱状图

    如果可以实现记得点赞分享,谢谢老铁~ 1.需求描述 根据业务需求将不同的法律法规,展示不同的3d立体渐变柱状图。 2.先看下效果图 3. 确定三面的颜色,这里我是自定义的颜色 4.然后绘画三个面对应的函数,且注册 5.重点在renderItem 自定义渲染函数上 5.最后看全文吧,这个

    2024年02月12日
    浏览(40)
  • echarts3d柱状图

     

    2024年02月21日
    浏览(42)
  • vue echarts实现3D效果柱状图

    在vue2项目里面,研究了哈,这里记录下eacharts 实现3D效果柱状图 在main.js引入eacharts 展示效果:大屏demo

    2024年02月15日
    浏览(42)
  • vue+echarts——实现3D地图+3D柱状图 效果——粗糙代码记录——技能提升

    最近看到同事在弄下面的这个图,这个图是从网上看到的,是某个网站的收费项目: 所以,最后的决定是通过 echarts 中的 3D地图 来写。但是写出来的效果不慎好看。功能是可以实现的。 初版效果图如下: 直接上代码: 我这边是存储到当前文件夹中了。。。 背景颜色是 ec

    2024年02月09日
    浏览(55)
  • vue3 echarts实现3D立体柱状图效果,多柱状图

    使用插件vchart+echarts5.x按需引入实现 需要注意下,底下的椭圆,是在柱子底下“透”出来,颜色应该暗一点,才能视觉上看着有立体感。 成品,还原了大部分设计效果

    2024年02月06日
    浏览(41)
  • echarts实现3d柱状图的两种方式

    看了不少关于3d柱状图的案例,发现做3d柱状图 常用的两种方式就是 自定义图形和象型柱图, 两种实现方式效果如下: 方法1: echarts.graphic.extendShape 自定义图形 echarts自定义图形的详细用法点这里, 官网点这里, 图中第一个3d柱状图我参考的案例在这里, 看了很多 echarts这种3d案例,

    2024年02月01日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包