在角度上为jqplot圆环图添加标签

时间:2015-07-22 03:12:15

标签: html5-canvas label jqplot angle donut-chart

我需要以一定角度为甜甜圈图添加标签,如图所示。我只能找到有关轴标签的有角度文本的信息。有没有一个简单的方法来做甜甜圈图表?我不介意在jqplot渲染器中进行一些更改,或者只是弄清楚角度并在叠加画布上绘制文本 - 我只是想知道是否有人这样做或知道更好的方法。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题:我发现没有规定在圆环图中旋转标签 - 它们作为标签存储在页面上。但是,在加载图表后,将它们绘制到叠加画布上非常容易。

var co = plot3.plugins.canvasOverlay;
var fiftiesSeries = plot3.series[0];

var ctx=co.canvas._ctx;
ctx.font="10px arial";
for (var i = 0; i < fiftiesSeries.gridData.length; i++) {
    if (fiftiesSeries.gridData[i][0]) {
        var targetX = fiftiesSeries._center[0] + ((fiftiesSeries._radius) * Math.sin(fiftiesSeries.gridData[i][1] - (fiftiesSeries.gridData[i][2] * Math.PI)));
        var targetY = fiftiesSeries._center[1] - ((fiftiesSeries._radius) * Math.cos(fiftiesSeries.gridData[i][1] - (fiftiesSeries.gridData[i][2] * Math.PI)));

        ctx.setTransform(1, 0, 0, 1, 0, 0); // reset
        ctx.translate(targetX, targetY);
        ctx.rotate(fiftiesSeries.gridData[i][1] - ((fiftiesSeries.gridData[i][2] + 0.5) * Math.PI));
        ctx.fillText(fiftiesSeries.gridData[i][0], 3, 3);
    }
}

我希望这有助于某人。