javascript - 在 Chart.js 折线图中显示数据集标签

标签 javascript chart.js

我已成功创建一个包含多个数据集的 Chart.js 折线图。但是,如何修改工具提示,以便当我将鼠标悬停在某个点上时,显示数据集的标签以及 £ 符号?

例如,从我的屏幕截图中,我想显示:

31/10/2015
(label) - £100.00
(label) - £240.00
(label) - £150.00

enter image description here

JavaScript 代码:

<script type="text/javascript">

gon.balances.reverse();
var balancesSortByAccId = gon.balancesSortByAccId;

var data = {
    labels: [],
    datasets: []
};

//loop through all accounts to generate datasets
for(var account in gon.balancesSortByAccId){
  var balances = [];
  var dates = [];

  var accountData = gon.balancesSortByAccId[account];

  for (var i in accountData) {
    balances.push(parseFloat(accountData[i].balance).toFixed(2)); 
    dates.push(convertDate(accountData[i].date));

    for (var date in dates)
      if (data.labels.indexOf(dates[date]) <= -1)
        data.labels.push(dates[date]);
  }

  var colour = getRandomColor();

  var chartjs_balances =           {
              label: account,
              fillColor: "rgba(220,220,220,0.2)",
              strokeColor: colour,
              pointColor: colour,
              pointStrokeColor: colour,
              pointHighlightFill: "#fff",
              pointHighlightStroke: "rgba(220,220,220,1)",
              data: balances
          };


  data.datasets.push(chartjs_balances);
}

var options = {
  responsive: true,
};

//draw graph
var ctx = document.getElementById("history_canvas").getContext("2d");
var myLineChart = new Chart(ctx).Line(data, options);

//convert date to dd/mm/yyyy format
function convertDate(inputFormat) {
  function pad(s) { return (s < 10) ? '0' + s : s; }
  var d = new Date(inputFormat);
  return [pad(d.getDate()), pad(d.getMonth()+1), d.getFullYear()].join('/');
}

//return random color for each dataset
function getRandomColor() {
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++ ) {
        color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
}

更新:

我已成功通过以下更新显示 £ 符号:

var options = {
  responsive: true,
  multiTooltipTemplate: "<%%=label%>: £<%%= value %>"
};

但是,其输出如下,并不完全是我想要的,因为它显示日期而不是帐户标签:

31/10/2015
31/10/2015 - £100.00
31/10/2015 - £240.00
31/10/2015 - £150.00

最佳答案

我设法通过以下方法解决了这个问题:

var options = {
  responsive: true,
  multiTooltipTemplate: "<%%=datasetLabel%>: £<%%= value %>",
};

关于javascript - 在 Chart.js 折线图中显示数据集标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453102/

相关文章:

javascript - 可以获取 &lt;script&gt; src JavaScript URL 的查询参数吗?

javascript - 具有对象解构的同一变量名的多个声明

javascript - 无法在javascript中创建变量

html - 如何删除 Chartjs 条形图中那些值为零的条形图?

javascript - Chart.js 图例左填充

javascript - Backbone.js - 如何创建具有可绑定(bind)属性的集合

DNN 中的 JavaScript

javascript - 如何修复带有长标签的 Chart.js 中的条形图

javascript - 如果没有标签,请删除工具提示

javascript - 如何在图例点击图表js时显示/隐藏动画