highcharts生成不同高度的3D饼图

在这里插入图片描述

getPie() {
      var each = highcharts.each,
      round = Math.round,
      cos = Math.cos,
      sin = Math.sin,
      deg2rad = Math.deg2rad;
      highcharts.wrap(highcharts.seriesTypes.pie.prototype, 'translate', function(proceed) {
          proceed.apply(this, [].slice.call(arguments, 1));
          // Do not do this if the chart is not 3D
          if (!this.chart.is3d()) {
              return;
          }
          var series = this,
              chart = series.chart,
              options = chart.options,
              seriesOptions = series.options,
              depth = seriesOptions.depth || 0,
              options3d = options.chart.options3d,
              alpha = options3d.alpha,
              beta = options3d.beta,
              z = seriesOptions.stacking ? (seriesOptions.stack || 0) * depth : series._i * depth;
          z += depth / 2;
          if (seriesOptions.grouping !== false) {
              z = 0;
          }
          each(series.data, function(point) {
              var shapeArgs = point.shapeArgs,
                  angle;
              point.shapeType = 'arc3d';
              var ran = point.options.h;
              shapeArgs.z = z;
              shapeArgs.depth = depth * 0.75 + ran;
              shapeArgs.alpha = alpha;
              shapeArgs.beta = beta;
              shapeArgs.center = series.center;
              shapeArgs.ran = ran;
              angle = (shapeArgs.end + shapeArgs.start) / 2;
              point.slicedTranslation = {
                  translateX: round(cos(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad)),
                  translateY: round(sin(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad))
              };
          });
      });
      (function(H) {
          H.wrap(highcharts.SVGRenderer.prototype, 'arc3dPath', function(proceed) {
              // Run original proceed method
              var ret = proceed.apply(this, [].slice.call(arguments, 1));
              ret.zTop = (ret.zOut + 0.5) / 100;
              return ret;
          });
      }(highcharts));

      // 生成不同高度的3d饼图
      highcharts.chart('pieMain', {
        chart: {
          type: 'pie',
          animation: false,
          backgroundColor: 'rgba(0, 0, 0, 0)', // 不显示背景色
          events: {
            load: function() {
              var each = highcharts.each,
                points = this.series[0].points;
              each(points, function(p) {
                p.graphic.attr({
                  translateY: -p.shapeArgs.ran
                });
                p.graphic.side1.attr({
                  translateY: -p.shapeArgs.ran
                });
                p.graphic.side2.attr({
                  translateY: -p.shapeArgs.ran
                });
              });
            }
          },
          options3d: {
            enabled: true,
            alpha: 75,
            beta: 0
          }
        },
        title: '',
          plotOptions: {
            pie: {
              allowPointSelect: true, //每个扇块能否选中
              cursor: "pointer", //鼠标指针
              innerSize: 0,
              size: 390,
              depth: 45, //饼图的厚度
              dataLabels: {
                enabled: true, //是否显示饼图的线形tip
                distance: 0,//设置引导线的长度          
                color: '#b9b8ce',//全局设置字体颜色
                style: {
                  textOutline: 'none',        //去掉文字白边 
                  fontSize: '12'                      
                },
                formatter: function() {
                  let name = this.point.name
                  let value = this.y
                  return name + value + '%'
                }
              },
            },
          },
        credits: {
          enabled: false    //禁用版权url    此处不设置
        },
        series: [{
          type: 'pie',
          name: '',
          data: [{
            'name': '搜狗',
            y: 30.0,
            h: 50
          }, {
            name: '',
            y: 26.8,
            h: 15
          }, {
            name: '谷歌',
            y: 12.8,
            h: 20
          }, {
            'name': 'IE',
            y: 8.5,
            h: 2
          }, {
            'name': '火狐',
            y: 6.2,
            h: 15
          }]
        }]
      });
    }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中使用Highcharts绘制3D饼图,首先需要在你的项目中安装vue-highcharts库,并在main.js中引入HighchartsHighcharts-3D模块。可以按照以下步骤进行操作: 1. 使用npm在你的项目中安装vue-highcharts库。 2. 在main.js中引入HighchartsHighcharts-3D模块: import highcharts from 'highcharts' import highcharts3d from 'highcharts/highcharts-3d' highcharts3d(highcharts) 3. 在Vue组件中使用vue-highcharts组件,并设置你的3D饼图的配置。 4. 参考上述的Vue教程来绘制3D饼图。 通过以上步骤,你就可以在Vue中使用Highcharts库绘制3D饼图了。请确保你已经正确安装了依赖库并按照引用和引用提供的方法进行配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【highCharts绘制3d饼图】有、无高低差的3d饼图](https://blog.csdn.net/phhzhhh/article/details/125807211)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [vue单页面中使用 highcharts 绘制3D饼图](https://blog.csdn.net/qq_46566911/article/details/121280786)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值