You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Chart.js实现仪表盘样式的半环形甜甜圈图表?

用Chart.js实现半环形仪表盘样式图表

你可以通过调整甜甜圈图表的旋转角度、显示范围及数据配置,实现类似仪表盘的半环形效果,最终预期效果如下:

半环形仪表盘预期效果

完整实现代码

HTML代码

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

<div class="donut-container">
    <div class="chart-container">
        <canvas id="donut-chart"></canvas>
    </div>
</div>

CSS代码

body {
  font-family: Arial, sans-serif;
  text-align: center;
}

.donut-container {
  text-align: center;
  margin-top: 20px;
}

.chart-container {
  width: 100%; /* 让容器自适应宽度 */
  max-width: 500px; /* 可选:设置容器最大宽度 */
  margin: 0 auto; /* 居中容器 */
}

JavaScript代码

// 半环形图表数据(先定义未填充区域,再定义已填充区域)
const data = {
    labels: ['未填充区域', '已填充区域'], // 调整标签顺序以匹配显示逻辑
    datasets: [{
        data: [30, 70], // 30为未填充占比,70为已填充占比
        backgroundColor: ['#A1A5B7', '#F1BC00'], // 对应区域的颜色
    }]
};

// 图表核心配置
const config = {
    type: 'doughnut', // 基于甜甜圈图表类型改造
    data: data,
    options: {
        rotation: 0.5 * Math.PI, // 将图表旋转90度,从右侧开始绘制
        circumference: Math.PI, // 限制图表仅显示180度,形成半环
        cutout: '70%', // 设置内圈镂空比例,模拟仪表盘的厚度
        plugins: {
            legend: {
                display: false, // 隐藏图例
            },
        },
    },
};

// 初始化图表
const canvas = document.getElementById('donut-chart');
const ctx = canvas.getContext('2d');
new Chart(ctx, config);

核心调整说明:通过circumference: Math.PI将图表限制为180度半环,配合rotation: 0.5 * Math.PI让半环水平朝上,再通过数据顺序和颜色区分填充区域与背景区域,最终实现仪表盘样式。

内容的提问来源于stack exchange,提问作者Rejuan hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:44:53