Echarts仪表盘实现半球带圆点

效果图:
在这里插入图片描述
代码如下:

<template>
  <div>
    <!-- 图表 -->
    <div class="echart-box" id="main"></div>
  </div>
</template>
<script setup>
import * as echarts from "echarts";
import { onMounted } from "vue";

//声明周期函数,自动执行初始化
onMounted(() => {
  init();
});
//初始化函数
function init() {
  // 基于准备好的dom,初始化echarts实例
  let Chart = echarts.init(document.getElementById("main"));
  // 绘制图表
  let options = {
    tooltip: {
      formatter: "{a} <br/>{b} : {c}%",
    },
    color: {
      type: "linear",
      x: 0,
      y: 0,
      x2: 0,
      y2: 1,
      colorStops: [
        {
          offset: 0,
          color: "#116fd6", // 0% 处的颜色
        },
        {
          offset: 0.5,
          color: "#1aa9e3", // 0% 处的颜色
        },
        {
          offset: 1,
          color: "#1ecaea", // 100% 处的颜色
        },
      ],
      global: false, // 缺省为 false
    },
    itemStyle: {
      borderWidth: 50,
    },
    legend: {},
    series: [
      {
        name: "灰色背景",
        type: "gauge",
        radius: "79%",
        pointer: {
          // 仪表盘指针。
          show: false,
        },
        splitLine: {
          // 仪表盘轴线(轮廓线)相关配置。
          show: false,
        },
        axisTick: {
          show: false,
        },
        // 仪表盘轴线(轮廓线)相关配置。
        axisLine: {
          show: true, // 是否显示仪表盘轴线(轮廓线),默认 true。
          roundCap: true,
          lineStyle: {
            opacity: 1, //图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
            width: 40, //轴线宽度,默认 30。
          },
        },

        axisLabel: {
          // 刻度标签。
          show: false,
        },
      },
      {
        name: "进度条展示",
        type: "gauge",
        progress: {
          show: true,
          width: 20,
          roundCap: true,
        },
        // startAngle: 170, // 仪表盘起始角度,默认 225。圆心 正右手侧为0度,正上方为90度,正左手侧为180度。
        // endAngle: -45, // 仪表盘结束角度,默认 -45
        // clockwise: true, // 仪表盘刻度是否是顺时针增长,默认 true。
        // min: 0, // 最小的数据值,默认 0 。映射到 minAngle。
        // max: 100, // 最大的数据值,默认 100 。映射到 maxAngle。
        // splitNumber: 10, // 仪表盘刻度的分割段数,默认 10。
        itemStyle: {
          // 仪表盘指针样式。
          // color: "auto", // 指针颜色,默认(auto)取数值所在的区间的颜色
          // opacity: 1, // 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
          // borderWidth: 5, // 描边线宽,默认 0。为 0 时无描边。
          // borderType: "solid", // 柱条的描边类型,默认为实线,支持 'solid', 'dashed', 'dotted'。
          // borderColor: "#ebf3fc", // 图形的描边颜色,默认 "#000"。支持的颜色格式同 color,不支持回调函数。
          // shadowBlur: 0, // (发光效果)图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。
          // shadowColor: "#ebf3fc", // 阴影颜色。支持的格式同color。
        },
        // 仪表盘指针。
        pointer: {
          show: false,
        },
        splitLine: {
          // 仪表盘轴线(轮廓线)相关配置。
          show: false,
        },
        axisTick: {
          show: false,
        },
        // 仪表盘轴线(轮廓线)相关配置。
        axisLine: {
          show: false,
        },

        axisLabel: {
          // 刻度标签。
          show: false,
        },
        title: {
          fontSize: 30,
          offsetCenter: [0, "55%"],
          color: "#15294c",
        },
        detail: {
          valueAnimation: true,
          fontSize: 65,
          fontWeight: "bolder",
          formatter: "{value} km",
          offsetCenter: [0, "-5%"],
          color: "#066fd6",
        },
        data: [
          {
            value: 50,
            name: "数据(自己看吧)",
          },
        ],
      },
      {
        name: "圆点",
        type: "gauge",
        progress: {
          show: false,
        },
        pointer: {
          // 仪表盘指针。
          icon: "circle",
          width: 25,
          offsetCenter: [0, -120],
          itemStyle: {
            color: "#116fd6",
            borderColor: "#3d92ed",
            borderWidth: 5,
          },
        },
        splitLine: {
          // 仪表盘轴线(轮廓线)相关配置。
          show: false,
        },
        axisTick: {
          show: false,
        },
        axisLine: {
          show: false,
        },
        axisLabel: {
          // 刻度标签。
          show: false,
        },
        data: [
          {
            value: 50,
          },
        ],
        detail: {
          show: false,
        },
        zlevel: 100,
      },
    ],
  };

  // 渲染图表
  Chart.setOption(options);
}
</script>

<style scoped>
.echart-box {
  width: 500px;
  height: 500px;
  color: #6d54c6;
}
</style>
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值