rLabel 的 ChartJS v2 自定义工具提示

Wes*_*ssi 2 javascript chart.js

我有一个具有三个维度的 ChartJS (v2) 气泡图:x、y 和 r(气泡的半径)。

按照这个答案,我有这个用于自定义工具提示的代码:

tooltips: {
  callbacks: {
    label: function (tooltipItem, data) {
      var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || '';
      return datasetLabel + ' : ' + tooltipItem.rLabel + '% has price of ' + tooltipItem.yLabel + ' USD';
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

除了tooltipItem.rLabel显示为undefined. 如果我输入tooltipItem.xLabel的工具提示显示正确的值为x. 但是,我想显示r.

有谁知道解决方案?

San*_*utt 7

rLabel值不是一个属性tooltipItem这就是为什么它给不确定的。我从数据对象访问该值。

  tooltips: {
                callbacks: {
                    label: function(tooltipItem, data) {
                        rLabel = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index].r;
                        var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || '';
                        return datasetLabel + ' : ' + rLabel + '% har pris på ca. ' + tooltipItem.yLabel + ' kr.';
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

下面是相同的工作代码。

var data = {
        datasets: [
            {
                label: 'First Dataset',
                data: [
                    {
                        x: 20,
                        y: 30,
                        r: 15
                    },
                    {
                        x: 40,
                        y: 10,
                        r: 10
                    }
                ],
                backgroundColor:"#FF6384",
                hoverBackgroundColor: "#FF6384",
            }
        ]
    };
    var myBubbleChart = new Chart(ctx,{
        type: 'bubble',
        data: data,
        options: {
            tooltips: {
                callbacks: {
                    label: function(tooltipItem, data) {
                        rLabel = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index].r;
                        var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || '';
                        return datasetLabel + ' : ' + rLabel + '% har pris på ca. ' + tooltipItem.yLabel + ' kr.';
                    }
                }
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)