在vue项目中使用echarts制作3D效果柱状图

在vue项目中使用echarts制作3D效果柱状图

1、第一步安装echarts组件。
npm install echarts
2、第二步安装好echarts后,安装echarts3d图形组件echarts-gl
npm install echarts-gl

如果package.json文件里面也可以找到这个配置,则安装成功
在这里插入图片描述
3.第三步在需要使用Echarts页面的script中附上以下代码
在这里插入图片描述

import * as echarts from 'echarts';
import 'echarts-gl';
require('echarts/lib/chart/bar.js');
require('echarts/lib/component/title.js');
require('echarts/lib/component/tooltip.js');

实例上代码!

<template>
  <div class="ChartAnalysis">
    <!-- 内容 -->
    <div id="main"></div>
  </div>
</template>

<script>

import * as echarts from 'echarts';
import 'echarts-gl';
require('echarts/lib/chart/bar.js');
require('echarts/lib/component/tooltip.js');
require('echarts/lib/component/title.js');

export default {
   
   
  name: "WaterMeter",
  
### 如何在Vue3中使用ECharts创建3D柱状图 #### 安装依赖包 为了能够在Vue3项目使用ECharts并支持3D图形,需要先安装`echarts`及其核心模块和3D组件。 ```bash npm install echarts --save ``` 对于3D图表的支持,则需额外引入相应的扩展: ```bash npm install echarts-gl --save ``` 这确保了环境中有必要的工具来构建复杂的三维视觉效果[^1]。 #### 初始化配置 接着,在项目的入口文件(main.js)里全局注册ECharts以便于后续方便调用。如果是在单页应用(SPA)场景下工作,也可以考虑局部导入的方式减少打包体积。 ```javascript import * as ECharts from 'echarts/core'; // 导入所需系列类型的定义 import { BarChart } from 'echarts/charts'; // 导入提示框,标题,直角坐标系组件 import { TitleComponent, TooltipComponent, GridComponent } from 'echarts/components'; // 标签自动布局,内置形状等 import { LabelLayout, UniversalTransition } from 'echarts/features'; // Canvas 渲染器 import { CanvasRenderer } from 'echarts/renderers'; // 注册必须的组件到 ECharts 对象上 ECharts.use([TitleComponent, TooltipComponent, GridComponent, BarChart, LabelLayout, UniversalTransition, CanvasRenderer]); export default defineNuxtPlugin((nuxtApp) => { nuxtApp.vueApp.config.globalProperties.$echarts = ECharts; }); ``` 这段代码展示了如何通过按需加载的形式只引入需要用到的部分,从而优化性能[^2]。 #### 编写组件逻辑 下面是一个具体的例子展示怎样利用上述设置好的基础去制作一个简单的3D柱状图。这里假设已经有一个名为`<template>`标签内的DOM容器用于承载最终呈现出来的图表。 ```html <div id="main" style="width: 600px;height:400px;"></div> <script setup lang="ts"> import { ref, onMounted } from 'vue' import * as echarts from 'echarts' const chartDom = document.getElementById('main')!; let myChart = echarts.init(chartDom); var option; onMounted(() => { const data = [ [{value: Math.round(Math.random() * 100)}, ...new Array(7).fill(null)], [...Array(8).keys()].map(i=>({name:`Category ${i}`, value:[Math.round(Math.random()*10), i]})) ]; option = { title: { text: '3D 柱状图', subtext: '' }, tooltip: {}, xAxis3D: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis3D: { type: 'category', data: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] }, zAxis3D: { type: 'value' }, grid3D: {}, series: [{ type: 'bar3D', data: (function () { var d = []; for (var i = 0; i < 8; ++i) { for (var j = 0; j < 7; ++j) { d.push([ j, // X轴上的位置 i, // Y轴上的位置 Math.floor(Math.random() * 50 + 1)// Z轴高度随机数 ]); } } return d; })(), shading: 'lambert' }] }; function renderChart(){ if (option && typeof option === 'object') { myChart.setOption(option); } } window.addEventListener('resize',myChart.resize); renderChart(); }) </script> ``` 此脚本片段说明了初始化过程中的几个重要环节:获取目标节点、实例化图表对象、准备数据集以及设定绘图选项。特别注意的是`series`部分指定了要绘制的具体类型为`'bar3D'`,并且提供了生成立体条形所需的多维数组作为输入[^3]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值