vue中使用echarts与echarts-gl 实现3D饼图环形饼图

效果图:(移动上去也会有效果的那种哦)

在这里插入图片描述
在这里插入图片描述

第一步:vue中安装echarts和echarts-gl

npm install echarts
npm install echarts-gl

注意:我不知道版本差异会不会有影响(可以指定版本 也可以借鉴我的)
在这里插入图片描述

指定版本命令 加个@后面跟版本号即可

npm install echarts-gl@2.0.9

成功之后可以在package.json中检查是否安装成功(如上图)

第二步:在vue文件中引入

引入位置:我没有在main.js中全局引用,而是哪个页面用到就引入哪里
在这里插入图片描述

代码:

import * as echarts from 'echarts'
import 'echarts-gl';

第三步:实现具体代码(完整的)

注意:我没有封装起来(你也可以先直接在页面中实现,然后在考虑封装需求)

1、有一个装饼图的容器(可以都复制走 为了成功实现效果)

	<!-- 饼图 -->
   <div class="container">
        <div class="chartsGl" id="charts"></div>
         <!-- 饼图下面的底座 -->
         <div class="buttomCharts"></div>
    </div>

2、对应样式

 //饼图(外面的容器)
   .container {
   
        width: 100%;
        height: 100%;
    }
    //饼图的大小
    .chartsGl {
   
        height: 200px;
        width: 400px;
    }
    //饼图底座(我也想给你们底座图片 可是我不知道咋给)
    .buttomCharts{
   
        background: center top url(/src/assets/images/bg/buttom-charts.png) no-repeat;
        background-size: cover;
        height: 78px;
        width: 180px;
        margin-top: -155px;
        margin-left: 18%;
    }

3、饼图数据

data() {
   
          return {
   
            //饼图数据+颜色
              optionData: [
                {
   
                  name: '休闲室',//名称
                  value: 19,//值
                  itemStyle: {
   //颜色 紫色
                    color: 'rgba(123, 167, 212,1)'
                  }
              }, {
   
                  name: '羽毛球室',//蓝色
                  value: 13,
                  itemStyle: {
   
                    color: 'rgba(98, 195, 250,1)',
                  }
              }, {
   
                  name: '瑜伽室',//绿色
                  value: 15,
                  itemStyle: {
   
                      color: 'rgba(140, 189, 107,1)'
                  }},
                  {
   
                  name: '动感单车室',//橙色
                  value: 16,
                  itemStyle: {
   
                      color: 'rgba(245, 182, 94,1)'
                  }}
                  ,
                  {
   
                  name: '兵乓球室',//黄色
                  value: 5,
                  itemStyle: {
   
                      color: 'rgba(237, 222, 111,1)'
                  }}
                ],
          }
      },

4、钩子中调用mouted

  mounted() {
   
      this.$nextTick(function() {
   
          this.init();
      });
  },

5、具体方法methods(为了你也方便修改样式 我注释尽量给到)

//初始化构建
  init() {
   
      //构建3d饼状图
      let myChart = echarts.init(document.getElementById('charts'));
      // 传入数据生成 option ; getPie3D(数据,透明的空心占比(调节中间空心范围的0就是普通饼1就很镂空))
      this.option = this.getPie3D(this.optionData, 0.85);
      //将配置项设置进去
      myChart.setOption(this.option);
      //鼠标移动上去特效效果
     this.bindListen(myChart);
  },
//配置构建 pieData 饼图数据 internalDiameterRatio:透明的空心占比
          getPie3D(pieData, internalDiameterRatio) {
   
              let that = this;
              let series = [];
              let sumValue = 0;
              let startValue = 0;
              let endValue = 0;
              let legendData = [];
              let legendBfb = [];
              let k = 1 - internalDiameterRatio;
              pieData.sort((a, b) => {
   
                  return (b.value - a.value);
              });
              // 为每一个饼图数据,生成一个 series-surface(参数曲面) 配置
              for (let i = 0; i < pieData.length; i++) {
   
                  sumValue += pieData[i].value;
                  let seriesItem = {
   
                      //系统名称
                      name: typeof pieData[i].name ===
  • 27
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
使用echartsecharts-gl实现3D饼图,首先需要下载并安装echartsecharts-gl的依赖。可以使用npm命令进行安装,如下所示:\[1\] ``` npm install echarts npm install echarts-gl ``` 然后,在代码引入echartsecharts-gl库。可以使用import语句将它们导入到你的代码,如下所示:\[1\] ``` import * as echarts from 'echarts' import 'echarts-gl' ``` 接下来,你需要获取数据并绘制饼图。你可以使用饼图的容器来展示图表,例如一个div元素,如下所示:\[3\] ``` <div class="container"> <div class="chartsGl" id="charts"></div> <div class="buttomCharts"></div> </div> ``` 然后,你可以使用echarts库的API来获取数据并绘制饼图。具体的实现方法可以根据你的需求和数据结构进行调整,例如使用鼠标点击图例切换饼图,仅展示所选的单个城市,剩余数据统称为其他。你可以参考echarts的文档和示例来实现你想要的效果。\[2\] 总结起来,要使用echartsecharts-gl实现3D饼图,你需要下载并安装echartsecharts-gl的依赖,引入echartsecharts-gl库,获取数据并绘制饼图,最后在页面上展示饼图的容器。希望这些信息对你有帮助! #### 引用[.reference_title] - *1* [3d饼图(Vue3 + echarts + echarts-gl)](https://blog.csdn.net/yeuteyietir/article/details/117261119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [echartsecharts-gl实现3D饼图](https://blog.csdn.net/Maggie_01/article/details/128396947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue使用echartsecharts-gl 实现3D饼图环形饼图](https://blog.csdn.net/weixin_47336389/article/details/128477978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值