【发布时间】:2017-05-28 06:54:39
【问题描述】:
我正在使用canvas 制作饼图,但无法将标签放入画布。我尝试了很多东西...你能帮帮我吗?
HTML
<canvas id="can" width="200" height="200" />
JS
var D1 = 15;
var D2 = 15;
var D3 = 45;
var D4 = 25;
var canvas = document.getElementById("can");
var ctx = canvas.getContext("2d");
var lastend = 0;
var data = [D1,D2,D3,D4]; // If you add more data values make sure you add more colors
var myTotal = 0; // Automatically calculated so don't touch
var myColor = ["#ECD078","#D95B43","#C02942","#542437"];
var labels = ["25%","25%","25%","25%"];
for (var e = 0; e < data.length; e++) {
myTotal += data[e];
ctx.font = 'bold 15pt Calibri';
ctx.fillText(labels[e],15,15);
}
for (var i = 0; i < data.length; i++) {
ctx.fillStyle = myColor[i];
ctx.beginPath();
ctx.moveTo(canvas.width / 2, canvas.height / 2);
// Arc Parameters: x, y, radius, startingAngle (radians), endingAngle (radians), antiClockwise (boolean)
ctx.arc(canvas.width / 2, canvas.height / 2, canvas.height / 2, lastend, lastend + (Math.PI * 2 * (data[i] / myTotal)), false);
ctx.lineTo(canvas.width / 2, canvas.height / 2);
ctx.fill();
lastend += Math.PI * 2 * (data[i] / myTotal);
}
我的意图是将labels[] 编号按顺序排列在饼图中。
【问题讨论】:
-
你能创建一个你的代码吗? here
-
我还是新手,我也想要,但网络不允许我发布它。很抱歉给您带来麻烦。
-
你可以在cmets这里创建jsfiddle链接。
-
谢谢你,这将有助于更清楚地向你们展示
标签: javascript html5-canvas pie-chart