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

如何实现带百分比值的单切片环形进度图(基于Doughnut Pie Chart)

改造Doughnut图表为单切片环形进度图(带百分比)

没问题!完全可以把这个Doughnut图表改成你想要的单切片环形进度图,还能直观显示百分比。我帮你调整了代码,直接就能用:

完整代码示例

HTML部分

<canvas id="chartProgress" width="300" height="200"></canvas>

JavaScript部分

const chartProgress = document.getElementById("chartProgress");
if (chartProgress) {
  // 这里设置你的目标进度百分比,比如75%
  const progressPercentage = 75;
  
  const myChartCircle = new Chart(chartProgress, {
    type: 'doughnut',
    data: {
      labels: ["进度"],
      datasets: [{
        // 第一个值是进度占比,第二个是剩余部分(100-进度)
        data: [progressPercentage, 100 - progressPercentage],
        backgroundColor: [
          '#4CAF50', // 彩色进度切片的颜色,可自定义
          '#e0e0e0'  // 背景环形的颜色,也可以用rgba(0,0,0,0)设置完全透明
        ],
        borderWidth: 0 // 去掉边框,让样式更简洁
      }]
    },
    options: {
      cutout: '70%', // 控制环形厚度,值越大环形越细(范围0-100%)
      responsive: true,
      maintainAspectRatio: false,
      plugins: {
        legend: {
          display: false // 隐藏图例,因为只需要单个数据项
        },
        tooltip: {
          enabled: false // 关闭默认提示框,也可以自定义提示内容
        },
        // 在环形中心显示百分比文本
        title: {
          display: true,
          text: `${progressPercentage}%`,
          position: 'center',
          font: {
            size: 24,
            weight: 'bold'
          },
          color: '#333'
        }
      }
    }
  });
}

关键修改说明

  • 数据集里用[进度值, 100-进度值]来实现单切片效果,第二个数据对应背景环形部分
  • 通过cutout参数调整环形的厚度,根据需求设置合适的百分比
  • 隐藏了图例和默认提示框,让界面更简洁
  • 用内置的title插件在中心显示百分比,也可以自定义插件实现更复杂的文本样式

如果需要动态更新进度,只需要修改progressPercentage的值,然后调用myChartCircle.update()即可。

内容的提问来源于stack exchange,提问作者Aymen bz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:20:49