console
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
const x = canvas.width / 2;
const y = canvas.height;
const radius = 100;
const lineWidth = 10;
const startAngle = - Math.PI ;
const endAngle = Math.PI * 2;
const gradient = ctx.createLinearGradient(x - radius, y, x + radius, y);
gradient.addColorStop(0, "#47C922");
gradient.addColorStop(1, "#00923E");
ctx.beginPath();
ctx.arc(x, y, radius, startAngle, startAngle + (endAngle - startAngle) );
ctx.lineWidth = lineWidth;
ctx.strokeStyle = "#ccc";
ctx.lineCap = "round";
ctx.stroke();
const percent = 0.5;
ctx.beginPath();
ctx.arc(x, y, radius, startAngle, startAngle + (endAngle - startAngle) * percent);
ctx.lineWidth = 13;
ctx.strokeStyle = gradient;
ctx.lineCap = "round";
ctx.stroke();
ctx.fillStyle = "#f00";
ctx.font = "20px Arial";
ctx.textAlign = "center";
ctx.fillText("住吧分", x, y -10);
<canvas id="myCanvas" width="800" height="200"></canvas>