jquery – 如何添加标签到Chart.js画布插件?

前端之家收集整理的这篇文章主要介绍了jquery – 如何添加标签到Chart.js画布插件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用真棒插件 Chart.js,我试图找到显示标签的方式在每个百分比。所以我googled它,我发现这拉: https://github.com/nnnick/Chart.js/pull/35

我做了一个简单的小提琴来测试它,但不工作:http://jsfiddle.net/marianico2/7ktug/1/

这是内容

HTML

  1. <canvas id="canvas" height="450" width="450"></canvas>

JS

  1. $(document).ready(function () {
  2. var pieData = [{
  3. value: 30,color: "#F38630",label: 'HELLO',labelColor: 'black',labelFontSize: '16'
  4. },{
  5. value: 50,color: "#E0E4CC"
  6. },{
  7. value: 100,color: "#69D2E7"
  8. }];
  9.  
  10. var myPie = new Chart(document.getElementById("canvas").getContext("2d")).Pie(pieData,{
  11. labelAlign: 'center'
  12. });
  13. });

恐怕在documentation没有关于这方面的信息。

此外,我想知道如何显示每个部分,但在图表外面的标签。通过线连接。正如highcharts.js的图表。

顺便说一句,我很高兴,如果你推荐我一个html5图表选择,其中包括我上面说的选项。我听说过flot插件,但恐怕不支持动画…

如果你需要更多的信息,让我知道,我会编辑的帖子。

解决方法

你必须在2个地方添加代码。例如,拿甜甜圈。首先将标签信息添加到默认值(查看原始Chart.js代码并与此进行比较):
  1. chart.Doughnut.defaults = {
  2. segmentShowStroke : true,segmentStrokeColor : "#fff",segmentStrokeWidth : 2,percentageInnerCutout : 50,animation : true,animationSteps : 100,animationEasing : "eaSEOutBounce",animateRotate : true,animateScale : false,onAnimationComplete : null,labelFontFamily : "Arial",labelFontStyle : "normal",labelFontSize : 24,labelFontColor : "#666"
  3. };

然后下来到多纳圈绘制的地方,并添加四个ctx线。

  1. animationLoop(config,null,drawPieSegments,ctx);
  2.  
  3. function drawPieSegments (animationDecimal){
  4. ctx.font = config.labelFontStyle + " " + config.labelFontSize+"px " + config.labelFontFamily;
  5. ctx.fillStyle = 'black';
  6. ctx.textBaseline = 'middle';
  7. ctx.fillText(data[0].value + "%",width/2 - 20,width/2,200);

ctx.fillText调用将把文本放到画布上,因此可以使用它来用x,y坐标写文本。你应该能够使用这种方式来做基本标签。这里是jsfiddle修补:

http://jsfiddle.net/nCFGL/(查看上述代码的jsfiddle的JavaScript部分中的第281行和第772行)

如果你需要一些东西,有人分支一个版本的Charts.js和添加工具提示。这里是讨论https://github.com/nnnick/Chart.js/pull/35,你可以在讨论中找到分叉版本的链接

猜你在找的jQuery相关文章