带有工具提示值的图表

时间:2017-03-27 16:04:04

标签: javascript jquery angularjs chart.js

我真的很困惑如何在角度js中创建图表。使用angular-chart.js,我可以创建一个饼图和条形图。但无法添加工具提示。我正在寻找一些like this来显示百分比作为工具提示。

的javascript

$scope.labels = ["Test1", "Test2", "Test3", "Test4"];
$scope.data = [8000, 6000, 22000, 500];
$scope.color = ['#90EE90', '#FF6600', '#8080FF'];
$scope.options = {
  legend: {
    display: true
  },
  responsive: true, // set to false to remove responsiveness. Default responsive value is true.
  tooltipEvents: [],
  showTooltips: true,
  tooltipCaretSize: 0,
  onAnimationComplete: function() {
    this.showTooltip(this.segments, true);
  }
}

HTML

<canvas id="doughnut" class="chart chart-doughnut" chart-data="data" chart-labels="labels" chart-colors="color" chart-options="options">
</canvas>

我可以创建图表。但是如何仅使用值设置工具提示或将值转换为百分比?我尝试了another example,但也无效。我尝试在角度1.4版本中使用code,但它给出了错误,表示未定义值。任何人都可以帮我创建工具提示值为百分比的图表吗?

1 个答案:

答案 0 :(得分:1)

您可以使用jtblin/angular-chart.js,因为样本中的库未显示百分比。

fiddle link

还添加了工具提示回调

  tooltips: {
    callbacks: {
      label: function(tooltipItem, data) {
        //get the concerned dataset
        var dataset = data.datasets[tooltipItem.datasetIndex];
        //calculate the total of this data set
        var total = dataset.data.reduce(function(previousValue, currentValue, currentIndex, array) {
          return previousValue + currentValue;
        });
        //get the current items value
        var currentValue = dataset.data[tooltipItem.index];
        //calculate the precentage based on the total and current item, also this does a rough rounding to give a whole number
        var precentage = Math.floor(((currentValue / total) * 100) + 0.5);

        return precentage + "%";
      }
    }
  }