vue+Highcharts绘制3D饼图

这篇具有很好参考价值的文章主要介绍了vue+Highcharts绘制3D饼图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果图

vue+Highcharts绘制3D饼图,vue.js,前端,javascript

 文章来源地址https://www.toymoban.com/news/detail-637179.html

一、下载highcharts插件

npm install highcharts

二、main.js全局配置插件

import Highcharts from "highcharts/highcharts";
import highcharts3d from "highcharts/highcharts-3d";
highcharts3d(Highcharts);

三、封装highcharts.vue组件

Highcharts.chart("EchartsPie", {
        chart: {
          type: "pie", //饼图
          options3d: {
            enabled: true, //使用3d功能
            alpha: 70, //延y轴向内的倾斜角度
            beta: 0,
          },
          backgroundColor: "rgba(0, 0, 0, 0)", // 不显示背景色
          width: 520,
          height: 220, //设置大小是为了饼图能在想要的区域中显示
        },
        legend: {
          bottom: "0%",
          itemStyle: {
            //图例文字的样式
            color: "#999",
            fontSize: 10,
          },
          left: "center",
          itemWidth: 100,
          // doesn't perfectly work with our tricks, disable it
          selectedMode: false,
          data: this.dataList.map((item, index) => {
            item.icon = "circle";
            return item;
          }),
        },
        title: {
          text: "", //图表的标题文字
        },
        subtitle: {
          text: "", //副标题文字
        },
        plotOptions: {
          pie: {
            allowPointSelect: true, //每个扇块能否选中
            cursor: "pointer", //鼠标指针
            size: 150,
            showInLegend: true, // 是否显示图例
            depth: 35, //饼图的厚度
            dataLabels: {
              enabled: true, //是否显示饼图的线形tip
              distance: 30, //设置引导线的长度
              color: "#999", //全局设置字体颜色
              style: {
                textOutline: "none", //去掉文字白边
                fontSize: "12",
              },
              formatter: function () {
                return this.point.name + this.y + "%";
              },
            },
          },
        },
        credits: {
          enabled: false, //禁用版权url    此处不设置
        },
        series: [
          {
            type: "pie",
            name: "", //统一的前置词,非必须
            data: [
              { name: "测试1:", y: 6.3, color: "#388D60" },
              { name: "测试2:", y: 2.3, color: "#BEB84C" },
              { name: "测试3:", y: 2.3, color: "#3A55B0" },
              { name: "测试4:", y: 9.3, color: "#7B40A5" },
              { name: "测试5:", y: 0.0, color: "#B76B3D" },
            ],
            startAngle: 0, //调整饼图的角度   方向:顺时针
            label: {
              show: true,
              position: "outside",
              formatter: "{b}:{d}%",
              normal: {
                show: true,
                fontSize: 14,
                formatter: ["  {a|{b}:{d}%}"].join("\n"), //用\n来换行
                rich: {
                  a: {
                    left: 20,
                    padding: [0, -140, 0, -180], //位置按需要调整
                  },
                },
              },
            },
          },
        ],
      });

四、页面调用

import EchartsBtD from "./components/echarts.bt3d.vue";
export default {
  components: { EchartsBtD },
  name: "top",
  data() {
    return {
      dataList: [
        {
          name: "综掘工作面",
          y: 25,
        },
        {
          name: "皮带机头",
          y: 11,
        },
        {
          name: "马头门",
          y: 22,
        },
        {
          name: "综采工作面",
          y: 18,
        },
        {
          name: "井底车场",
          y: 23,
        },
      ],
    };
  },
},
 <EchartsBtD v-if="dataList.length != 0" :dataList="dataList"></EchartsBtD>

五、组件完整代码

<template>
  <div class="echart-bt">
    <div id="EchartsPie" class="EchartsPie"></div>
  </div>
</template>
<script>
import Highcharts from "highcharts/highcharts";
import highcharts3d from "highcharts/highcharts-3d";
highcharts3d(Highcharts);
export default {
  props: ["dataList"],
  data() {
    return {
      option: {
        chart: {
          type: "pie", //饼图
          options3d: {
            enabled: true, //使用3d功能
            alpha: 70, //延y轴向内的倾斜角度
            beta: 0,
          },
          backgroundColor: "rgba(0, 0, 0, 0)", // 不显示背景色
          width: 520,
          height: 220, //设置大小是为了饼图能在想要的区域中显示
        },
        legend: {
          bottom: "0%",
          itemStyle: {
            //图例文字的样式
            color: "#999",
            fontSize: 10,
          },
          left: "center",
          itemWidth: 100,
          // doesn't perfectly work with our tricks, disable it
          selectedMode: false,
          data: this.dataList.map((item, index) => {
            item.icon = "circle";
            return item;
          }),
        },
        title: {
          text: "", //图表的标题文字
        },
        subtitle: {
          text: "", //副标题文字
        },
        plotOptions: {
          pie: {
            allowPointSelect: true, //每个扇块能否选中
            cursor: "pointer", //鼠标指针
            size: 150,
            showInLegend: true, // 是否显示图例
            depth: 35, //饼图的厚度
            dataLabels: {
              enabled: true, //是否显示饼图的线形tip
              distance: 30, //设置引导线的长度
              color: "#999", //全局设置字体颜色
              style: {
                textOutline: "none", //去掉文字白边
                fontSize: "12",
              },
              formatter: function () {
                return this.point.name + this.y + "%";
              },
            },
          },
        },
        credits: {
          enabled: false, //禁用版权url    此处不设置
        },
        series: [
          {
            type: "pie",
            name: "", //统一的前置词,非必须
            data: [
              { name: "测试1:", y: 6.3, color: "#388D60" },
              { name: "测试2:", y: 2.3, color: "#BEB84C" },
              { name: "测试3:", y: 2.3, color: "#3A55B0" },
              { name: "测试4:", y: 9.3, color: "#7B40A5" },
              { name: "测试5:", y: 0.0, color: "#B76B3D" },
            ],
            startAngle: 0, //调整饼图的角度   方向:顺时针
            label: {
              show: true,
              position: "outside",
              formatter: "{b}:{d}%",
              normal: {
                show: true,
                fontSize: 14,
                formatter: ["  {a|{b}:{d}%}"].join("\n"), //用\n来换行
                rich: {
                  a: {
                    left: 20,
                    padding: [0, -140, 0, -180], //位置按需要调整
                  },
                },
              },
            },
          },
        ],
      },
    };
  },

  watch: {},
  created() {},
  mounted() {
    this.option.series[0].data.forEach((item, index) => {
      item.name = this.dataList[index].name;
      item.y = this.dataList[index].y;
    });
    Highcharts.chart("EchartsPie", this.option);
  },
  methods: {},
};
</script> 

<style scoped>
.EchartsPie {
  width: 100%;
  height: 100%;
}
/* 禁止跳转到外部接口 */
::v-deep .highcharts-credits {
  display: none;
}

.echart-bt {
  width: 100%;
  height: 300px;
}
</style>

到了这里,关于vue+Highcharts绘制3D饼图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【echarts】使用 ECharts 绘制3D饼图

    在数据可视化中,饼图是表达数据占比信息的常见方式。ECharts 作为一个强大的数据可视化库,除了标准的二维饼图,也支持更加生动的三维饼图绘制。本文将指导你如何使用 ECharts 来创建一个3D饼图,提升你的数据展示效果。 在 ECharts 中,3D 饼图主要是通过 surface 类型的图

    2024年04月27日
    浏览(22)
  • vue3中使用Three.js及ROS2绘制机器人3D图形

    要实现机器人3D位置的显示,你需要使用ROS2和Vue3结合开发。 首先,在Vue3中创建一个3D场景,你可以使用Three.js库来创建。Three.js是一个用于创建和渲染3D图形的JavaScript库,可以轻松创建3D场景、3D对象、光线等。 接下来,在Vue3中使用ROS2提供的 roslibjs 库,订阅机器人的位置信

    2024年02月03日
    浏览(27)
  • vue3+heightchart实现3D饼图,echarts3D饼图,3D饼图引导线实现

     附上 heightcharts 官网地址  Highcharts 演示 | Highcharts https://www.hcharts.cn/demo/highcharts 首先需要下载一下 heightcharts执行命令  然后初始化: 如此你就得到了一个3D饼图 

    2024年02月13日
    浏览(27)
  • 基于Vue的3D饼图

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 先看效果: 再看代码:

    2024年02月11日
    浏览(28)
  • vue中3D饼图实现方案

        近期项目中大屏展示需要3D饼图(PS:别问为什么不使用2D的,问就是产品觉得3D的好看),所以度娘找了一波。     直接找到了用echarts-gl做3D饼图的示例, Echarts 3D饼图开发_长剑浣花咻咻咻的博客-CSDN博客 Echarts 3D饼图指示线开发 https://blog.csdn.net/sinat_28071063/article/details

    2024年02月08日
    浏览(27)
  • Vue2 Echarts 3D饼图

    2024年01月19日
    浏览(33)
  • vue实现echarts3D饼图

    效果图: 1.首先安装依赖 2.mainjs中导入以及挂载 3.传入数据生成3D的配置项以及option的配置 4.指示线的配置

    2024年02月06日
    浏览(35)
  • vue中使用echarts与echarts-gl 实现3D饼图环形饼图

    注意:我不知道版本差异会不会有影响(可以指定版本 也可以借鉴我的) 指定版本命令 加个@后面跟版本号即可 成功之后可以在package.json中检查是否安装成功(如上图) 引入位置:我没有在main.js中全局引用,而是哪个页面用到就引入哪里 代码: 注意:我没有封装起来(你

    2024年02月03日
    浏览(33)
  • vue 使用echarts实现3D饼图和环形图

    记录一下echarts实现3d饼图和环形图功能## 标题 实现效果 首先第一步安装echarts和echarts-gl echarts-gl安装最新版本可能会有异常,建议安装\\\"echarts-gl\\\": \\\"^1.1.2\\\"版本 第二步在vue文件中引入 第三步我这里把实现3d饼图的代码给封装一下,如下: 第四步 vue文件内使用 饼图的实现 如果对

    2024年02月12日
    浏览(44)
  • 用echarts在vue2中实现3d饼图

    先看效果,再看文章: 3d的图不仅用到echarts,还用到了echarts-gl,因此都需要安装一下哦~ 直接复制粘贴吧,省事 1、修改3d饼图大小,在大概244行的位置,grid3D的对象里面,修改distance属性,即可调整 值越小,图越大    2、修改3d饼图视角高度,在大概161行的位置,修改函数

    2024年02月07日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包