iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue+highcharts如何实现3D饼图效果
  • 931
分享到

vue+highcharts如何实现3D饼图效果

2023-06-29 16:06:32 931人浏览 独家记忆
摘要

这篇文章给大家分享的是有关Vue+highcharts如何实现3D饼图效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这是最终效果<template><div class="

这篇文章给大家分享的是有关Vue+highcharts如何实现3D饼图效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

这是最终效果

vue+highcharts如何实现3D饼图效果

<template><div class="big-box">  <div class="com-container" ref="container" >  </div>  <div class="tulibox">    <div v-for="(item,index) in peiData" :key="index" class="tuliboxitem">      <span class="name">{{item.name}}</span>   <span class="value">{{item.y}}%</span>    </div>  </div></div></template><script>import HighCharts from 'highcharts'export default {  props: {},  data () {    return {      peiData: [        { name: '输电', y: 28, h: 60 },        { name: '变电', y: 20, h: 20 },        { name: '配电', y: 10, h: 32 },        { name: '新业务', y: 6, h: 45 }      ]    }  },  computed: {},  updated () {},  created () {},  mounted () {    this.initChart()    const that = this    window.onresize = function () { that.initChart() }  },  methods: {    initChart () {      // 修改3d饼图绘制过程      const each = HighCharts.each      const round = Math.round      const cos = Math.cos      const sin = Math.sin      const 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        }        const series = this        const chart = series.chart        const options = chart.options        const seriesOptions = series.options        const depth = seriesOptions.depth || 0        const options3d = options.chart.options3d        const alpha = options3d.alpha        const beta = options3d.beta        var z = seriesOptions.stacking ? (seriesOptions.stack || 0) * depth : series._i * depth        z += depth / 2        if (seriesOptions.grouping !== false) {          z = 0        }        each(series.data, function (point) {          const shapeArgs = point.shapeArgs          var 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          const ret = proceed.apply(this, [].slice.call(arguments, 1))          ret.zTop = (ret.zOut + 0.5) / 100          return ret        })      }(HighCharts))      // 生成不同高度的3d饼图      const highEcharts = this.$refs.container      HighCharts.chart(highEcharts, {        chart: {          type: 'pie',          animation: false,          backgroundColor: 'rgba(0,0,0,0)',          events: {            load: function () {              const each = HighCharts.each              const points = this.series[0].points              each(points, function (p, i) {                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: 65          }        },        title: {          show: 'false',          text: null        },        subtitle: {          text: null        },        credits: {          enabled: false        },        legend: { // 【图例】位置样式          backgroundColor: 'rgba(0,0,0,0)',          shadow: false,          layout: 'vertical',          align: 'right', // 水平方向位置          verticalAlign: 'top', // 垂直方向位置          x: 0, // 距离x轴的距离          y: 100, // 距离Y轴的距离          symbolPadding: 10,          symbolHeight: 14,          itemStyle: {            lineHeight: '24px',            fontSize: '16px',            color: '#fff'          },          labelFORMatter: function () {                        return this.name + this.h + '%'          }        },        plotOptions: {          pie: {            allowPointSelect: true,            cursor: 'pointer',            depth: 35,            innerSize: 180,            dataLabels: {              enabled: false            },            // 显示图例            showInLegend: false          }        },        series: [{          type: 'pie',          name: '占比',          // h 是高度  y是占的圆环长度          colorByPoint: true,          colors: [            { // 注意!!!如果是柱状图请使用color,如果是面积图请使用fillColor              linearGradient: {                x1: 0,                y1: 1,                x2: 1,                y2: 0              },              stops: [                [0, '#19596d'],                [1, '#2ea1b2']              ]            }, { // 注意!!!如果是柱状图请使用color,如果是面积图请使用fillColor              linearGradient: {                x1: 0,                y1: 1,                x2: 1,                y2: 0              },              stops: [                [0, '#ee7529'],                [1, '#f5a86c']              ]            }, { // 注意!!!如果是柱状图请使用color,如果是面积图请使用fillColor              linearGradient: {                x1: 0,                y1: 1,                x2: 1,                y2: 0              },              stops: [                [0, '#f5c055'],                [1, '#967b3d']              ]            }, { // 注意!!!如果是柱状图请使用color,如果是面积图请使用fillColor              linearGradient: {                x1: 0,                y1: 1,                x2: 1,                y2: 0              },              stops: [                [0, '#2d7bb5'],                [1, '#1a5784']              ]            }],          data: this.peiData        }]      })    }  },  components: {}}</script><style scoped lang="less">.com-container{    width: 380px;    height: 300px;    padding-right: 20px;}.big-box{    display: flex;    background-image: url('../img/dizuo.png');    background-repeat: no-repeat;    background-position: 25px 144px;    padding-top: 20px;}.tulibox{  padding-top: 65px;  .tuliboxitem{    position: relative;    margin: 10px 0;    .name{      font-size: 18px;      color: #FEFEFF;      padding-right: 20px;    }    .value{      font-size: 22px;      color: #0CD2EA;    }  }  .tuliboxitem::before{     content: "";     position: absolute;     width: 16px;    height: 16px;    top: 7px;    border-radius: 50%;    left: -33px;  }  .tuliboxitem:nth-child(1)::before{      background-color: #fff600;  }  .tuliboxitem:nth-child(2)::before{      background-color: #209FED;  }  .tuliboxitem:nth-child(3)::before{      background-color: #808EC7;  }  .tuliboxitem:nth-child(4)::before{      background-color: #EE6B26;  }}</style>

感谢各位的阅读!关于“vue+highcharts如何实现3D饼图效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: vue+highcharts如何实现3D饼图效果

本文链接: https://www.lsjlt.com/news/325807.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue+highcharts实现3D饼图效果
    本文实例为大家分享了vue+highcharts实现3D饼图效果的具体代码,供大家参考,具体内容如下 这是最终效果 <template> <div class="...
    99+
    2024-04-02
  • vue+highcharts如何实现3D饼图效果
    这篇文章给大家分享的是有关vue+highcharts如何实现3D饼图效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这是最终效果<template><div class="...
    99+
    2023-06-29
  • vue使用Highcharts实现3D饼图
    本文实例为大家分享了vue使用Highcharts实现3D饼图的具体代码,供大家参考,具体内容如下 1.安装vue-highcharts和highcharts npm install...
    99+
    2024-04-02
  • vue如何实现3D环形图效果
    这篇文章主要介绍“vue如何实现3D环形图效果”,在日常操作中,相信很多人在vue如何实现3D环形图效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue如何实现3D环形图效果”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • vue实现3D环形图效果
    本文实例为大家分享了vue实现3D环形图效果的具体代码,供大家参考,具体内容如下 1.引入highcharts 2.main.js引入highcharts import highch...
    99+
    2024-04-02
  • 基于Echarts如何实现饼图效果
    这篇文章主要讲解了“基于Echarts如何实现饼图效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于Echarts如何实现饼图效果”吧!1 显示数值效果 series 下的label 饼...
    99+
    2023-06-30
  • 基于Echarts实现饼图效果
    本文实例为大家分享了Echarts实现饼图效果的具体代码,供大家参考,具体内容如下 1 显示数值效果 series 下的label 饼图的文字显示2 半径 圆环 radius3 南丁...
    99+
    2024-04-02
  • vue中怎么使用echarts和echarts-gl实现3D饼图环形饼图
    今天小编给大家分享一下vue中怎么使用echarts和echarts-gl实现3D饼图环形饼图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2023-07-05
  • vue使用Highcharts实现不同高度的3D环形图
    本文实例为大家分享了Highcharts实现不同高度的3D环形图的具体代码,供大家参考,具体内容如下 要实现的效果: 完整代码如下: // 修改3d饼图绘制过程 var each ...
    99+
    2024-04-02
  • js如何实现3D图片展示效果
    这篇文章给大家分享的是有关js如何实现3D图片展示效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。点击左上角的按钮前后切换效果图:代码如下:<!doctype ...
    99+
    2024-04-02
  • jQuery插件FusionCharts如何实现2D饼状图效果
    这篇文章将为大家详细讲解有关jQuery插件FusionCharts如何实现2D饼状图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:1、实现源码:<!...
    99+
    2024-04-02
  • js实现3D轮播图效果
    本文实例为大家分享了js实现3D轮播图效果的具体代码,供大家参考,具体内容如下 主要有平移和旋转构成3d效果的轮播图,小白一只,不足之处还请大家多多指教,代码如下 css代码: ...
    99+
    2024-04-02
  • js如何实现3D图片环展示效果
    这篇文章给大家分享的是有关js如何实现3D图片环展示效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。可对整体进行拖拽效果图:代码如下:<!DOCTYPE htm...
    99+
    2024-04-02
  • vue实现3D切换滚动效果
    本文实例为大家分享了vue实现3D切换滚动效果的具体代码,供大家参考,具体内容如下 今天写项目,遇到一个点击切换的滚动需求,贴出来,做一个记录 这个是最终的一个效果,点击左右小箭头...
    99+
    2024-04-02
  • css3代码如何实现图形3d翻转效果
    这篇“css3代码如何实现图形3d翻转效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“css3代码如何实现图形3d翻转效果...
    99+
    2023-07-04
  • Unity实现仿3D轮转图效果
    本文实例为大家分享了Unity实现仿3D轮转图效果的具体代码,供大家参考,具体内容如下 一、效果演示 二、实现思路 ——获取位置:可以将每个item的运行轨...
    99+
    2024-04-02
  • 如何使用css实现3D图像轮转效果
    这篇文章主要为大家展示了“如何使用css实现3D图像轮转效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用css实现3D图像轮转效果”这篇文章吧。首先看...
    99+
    2024-04-02
  • 如何使用纯CSS实现饼状Loading等待图效果
    这篇文章将为大家详细讲解有关如何使用纯CSS实现饼状Loading等待图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:原理这个东西分为两部分:外圈和内圆。颜色这东西都自定义啦,不过我画的的圈圈...
    99+
    2023-06-08
  • css3如何实现3d翻转效果
    今天小编给大家分享的是css3如何实现3d翻转效果,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计...
    99+
    2023-06-14
  • js如何实现3d悬浮效果
    这篇文章主要介绍了js如何实现3d悬浮效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果如下:代码如下:<!DOCTYPE&nbs...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作