echarts-gl 3D柱状图配置

1. 源码

此demo可以直接在echarts的编辑器中运行

javascript 复制代码
option = {
  title: {
    text: '产量图',
    textStyle: {
      color: 'rgba(255, 255, 255, 1)',
      fontSize: 17
    },
    left: 'center'
  },
  tooltip: {},
  legend: {
    show: false,
    orient: 'vertical',
    x: 'left',
    top: 0,
    right: 20,
    textStyle: {
      fontSize: 12
    }
  },
  visualMap: {
    show: false,
    max: 1,
    inRange: {
      color: 'rgba(290, 206, 118, 1)' // 控制柱体颜色
    }
  },
  xAxis3D: {
    type: 'category',
    name: false,
    show: true,
    data: [
      'Mon',
      'Tue',
      'Wed',
      'Thu',
      'Fri',
      'Sat',
      'Sun',
    ],
    axisLine: {
      lineStyle: {
        color: '#fff'
      }
    },
    axisTick: {
      show: false,
      alignWithLabel: true
    },
    axisLabel: {
      interval: 0,
      margin: 12, // 标签与轴的距离
      textStyle: {
        color: '#fff',
        fontSize: 16
      }
    },
    splitLine: {
      show: false
    }
  },
  yAxis3D: {
    type: 'category',
    name: false,
    axisLabel: {
      show: false
    },
    axisLine: {
      lineStyle: {
        color: '#fff'
      }
    },
    axisTick: {
      show: false
    },
    splitArea: {
      show: true,
      areaStyle: {
        color: '#fff'
      }
    }
  },
  zAxis3D: {
    name: false,
    axisTick: {
      show: false
    },
    axisLine: {
      lineStyle: {
        color: '#fff'
      }
    },
    axisLabel: {
      margin: 12,
      textStyle: {
        color: '#fff',
        fontSize: 16
      }
    },
    splitLine: {
      show: false
    }
  },
  grid3D: {
    left: 0,
    top: 0,
    right: 20,
    bottom: 0,
    boxDepth: 8, // 深度,即y方向的长度
    containLabel: true,
    viewControl: {
      distance: 181, // 视距,用于柱状图控制大小,默认值200
      rotateSensitivity: 0, // 禁止鼠标旋转
      zoomSensitivity: 0, // 禁止鼠标缩放
      alpha: 20, // 视角绕 x 轴,即上下旋转的角度
      beta: 28 // 视角绕 z 轴,即左右旋转的角度
    }
  },
  series: [
    {
      name: '产量',
      data: [
        [0, 0, 20],
        [1, 0, 30],
        [2, 0, 18],
        [3, 0, 55],
        [4, 0, 35],
        [5, 0, 23],
        [6, 0, 15],
      ],
      type: 'bar3D',
      barSize: 7, // 柱子的宽度
      shading: 'lambert', // 设置光照效果
      // bevelSmoothness: 100, // 柱子倒角的光滑度,圆柱相关设置
      // bevelSize: 0.8, // 柱子的倒角尺寸,设置为0更接近圆柱
      label: {
        show: true,
        distance: 2,
        textStyle: {
          fontSize: 14,
          color: '#fff',
          fontWeight: 300
        }
      }
    }
  ]
};

2. 效果图

3. 注意

  1. 使用3D柱状图需要引入echarts,和echarts-gl两个依赖。

  2. 三维柱状图区别于二维柱状图,无法直接设置宽度,可以通过设置视距来控制柱状图大小(grid3D.viewControl.distance),视距越大,则显示的越小。

  3. 二维柱状图的Y轴,在三维柱状图中叫Z轴,X轴不变;三维图中的Y轴类似于深度,设置grid3D.boxDepth可以控制深度。

  4. X轴刻度标签名称过长,导致显示重叠时,可以通过配置grid3D.viewControl.beta 旋转角度,以及xAxis3D.axisLabel.interval (如果设置为 1,表示『隔一个标签显示一个标签』)控制坐标轴刻度标签的显示间隔来解决。注:三维柱状图不支持二维柱状图中的旋转刻度标签的方式。

  5. 想让柱体显示上趋近于圆柱体,可以放开上面demo中的两行注释

    javascript 复制代码
    // bevelSmoothness: 100, // 柱子倒角的光滑度,圆柱相关设置
    // bevelSize: 0.8, // 柱子的倒角尺寸,设置为0更接近圆柱
相关推荐
小兵张健17 小时前
价值1000的 AI 工作流:Codex 通用前端协作模式
前端·aigc·ai编程
sunny_17 小时前
面试踩大坑!同一段 Node.js 代码,CJS 和 ESM 的执行顺序居然是反的?!99% 的人都答错了
前端·面试·node.js
拉不动的猪17 小时前
移动端调试工具VConsole初始化时的加载阻塞问题
前端·javascript·微信小程序
ayqy贾杰19 小时前
Agent First Engineering
前端·vue.js·面试
IT_陈寒19 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
iceiceiceice20 小时前
iOS PDF阅读器段评实现:如何从 PDFSelection 精准还原一个自然段
前端·人工智能·ios
大金乄20 小时前
封装一个vue2的elementUI 表格组件(包含表格编辑以及多级表头)
前端·javascript
葡萄城技术团队21 小时前
【性能优化篇】面对万行数据也不卡顿?揭秘协同服务器的“片段机制 (Fragments)”
前端
程序员阿峰21 小时前
2026前端必备:TensorFlow.js,浏览器里的AI引擎,不写Python也能玩转智能
前端
Jans21 小时前
Shipfe — Rust 写的前端静态部署工具:一条命令上线 + 零停机 + 可回滚 + 自动清理
前端