vue实现3d饼图-Highcharts

这篇博客介绍了如何在Vue项目中利用Highcharts库创建3D饼图。首先通过npm安装highcharts和highcharts-3d,然后在main.js中引入并启用3D功能。接着,创建一个Vue组件来承载图表,并在watch中动态更新图表。最后,展示了如何设置选项以生成带有数据标签的3D饼图,并提供了示例代码。
摘要由CSDN通过智能技术生成

因为目前就以本人的知识储量,echarts实现3d图相当有难度,所以使用Highcharts实现,在网上看了一些,记录一下流程。Highcharts文档:https://www.highcharts.com.cn/docs/install-from-npm

1、安装

npm install highcharts --save

main.js
引用highcharts3d,才会使图表变成3d

import HighchartsVue from 'highcharts-vue'
import highcharts from 'highcharts'
import highcharts3d from 'highcharts/highcharts-3d'
Vue.use(HighchartsVue)
highcharts3d(highcharts)

2、使用

1)、创建一个vue组件容器(也可以按照文档上的来)

<template>
  <div :id="id" :option="option"> </div>
</template>
<script>
  import HighCharts from 'highcharts'
  export default {
    props: {
      id: {
        type: String
      },
      //option 是图表的配置数据
      option: {
        type: Object
      }
    },
    watch:{
      option(){
        HighCharts.chart(this.id, this.option)
      }
    },
    mounted() {
    }
  }
</script>

<style lang="scss" scoped>
  /* 容器 */
  .container {
    width: 100%;
    height: 100%;
  }
</style>

2)、使用

html:

  <echart style="
		  width: 6.88rem; 
		  height: calc(50.3vh - 0.41rem)" 
		  :id="'chart1'" :option="option">
	</echart>

js:

 data() {
    return {
      option: {},
    };
  },
  methods:{
   getcsda() {
      let message = [
        {
          //模块名和所占比,也可以{name: '测试1',y: 12}
          name: "测试1",
          y: 30,
          sliced: true,
          selected: true,
        },
        {
          name: "测试2",
          y: 23,
        },
        {
          name: "测试3",
          y: 19,
        },
        {
          name: "测试4",
          y: 29,
        },
      ];
      this.option = {
        chart: {
          type: "pie", //饼图
          options3d: {
            enabled: true, //使用3d功能
            alpha: 60, //延y轴向内的倾斜角度
            beta: 0,
          },
        },
        credits: {
          enabled: false,
        },
        title: {
          text: "", //图表的标题文字
        },
        subtitle: {
          text: "", //副标题文字
        },
        colors: ["#FF6A66", "#34B862", "#F5A623", "#738EFF"],
        plotOptions: {
          pie: {
            allowPointSelect: true, //每个扇块能否选中
            cursor: "pointer", //鼠标指针
            depth: 60, //饼图的厚度
            dataLabels: {
              enabled: true, //是否显示饼图的线形tip
              useHTML: true, //使用formatter内的标签和样式
              distance: 50,
              formatter: function () {
                //this 为当前的点(扇区)对象,可以通过  console.log(this) 来查看详细信息
                return (
                  '<p style="font-size: 0.36rem;margin-top: -0.3rem ;font-family: DINCondensed, DINCondensed-Bold;font-weight: 700;color: ' +
                  this.point.color +
                  '">' +
                  this.percentage.toFixed(1) +
                  "%</p></div>" +
                  '<div><p style="font-size: 0.16rem;font-weight: 500;font-family: PingFangSC, PingFangSC-Medium;color: rgba(0,0,0,0.50);">' +
                  this.point.name +
                  "</p>"
                );
              },
            },
            slicedOffset: 40,
          },
        },
        series: [
          {
            type: "pie",
            name: "处室档案统计", //统一的前置词,非必须
            data: message,
          },
        ],
      };
    },
  }
您好!要在Vue中使用Highcharts3D饼图,您需要按照以下步骤进行操作: 1. 首先,您需要安装HighchartsHighcharts-Vue插件。使用以下命令进行安装: ```bash npm install highcharts --save npm install highcharts-vue --save ``` 2. 在您的Vue组件中引入HighchartsHighcharts-Vue插件,并注册Highcharts模块。您可以在需要使用3D饼图的组件中进行这些操作。请注意,需要引入3D模块。 ```javascript import HighchartsVue from 'highcharts-vue'; import Highcharts from 'highcharts'; import highcharts3d from 'highcharts/highcharts-3d'; // 注册Highcharts模块 HighchartsVue(Highcharts); // 启用3D模块 highcharts3d(Highcharts); ``` 3. 在组件的模板中使用`<highcharts>`标签,并通过`options`属性传递配置项来绘制3D饼图。以下是一个示例: ```html <template> <div> <highcharts :options="chartOptions"></highcharts> </div> </template> <script> export default { data() { return { chartOptions: { chart: { type: 'pie', options3d: { enabled: true, alpha: 45, beta: 0, }, }, title: { text: '3D Pie Chart', }, series: [ { name: 'Brands', colorByPoint: true, data: [ { name: 'Chrome', y: 61.41, }, { name: 'Internet Explorer', y: 11.84, }, { name: 'Firefox', y: 10.85, }, { name: 'Edge', y: 4.67, }, { name: 'Safari', y: 4.18, }, { name: 'Other', y: 7.05, }, ], }, ], }, }; }, }; </script> ``` 请注意,以上示例仅供参考,您可以根据自己的需求进行相应的配置和样式调整。 希望能帮助到您!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言只 石皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值