Javascript ChartsJS为工具提示获取数据/数据集标签的值

Javascript ChartsJS为工具提示获取数据/数据集标签的值,javascript,charts,chart.js,Javascript,Charts,Chart.js,我对ChartJS(以及一般的JS)非常陌生,在网上任何地方都找不到适合我的问题的答案 我正在尝试自定义Bubblechart中的工具提示,以适应以下格式: 数据集标签 x、 值:x y、 值:X 对于x和y值,我很好。但我不能得到我想要的标题 为了这个头衔,我现在正在努力 tooltips: { callbacks: { title: function(tooltipItems, data) {

我对ChartJS(以及一般的JS)非常陌生,在网上任何地方都找不到适合我的问题的答案

我正在尝试自定义Bubblechart中的工具提示,以适应以下格式:

数据集标签 x、 值:x y、 值:X

对于x和y值,我很好。但我不能得到我想要的标题

为了这个头衔,我现在正在努力

            tooltips: {
        callbacks: {
            title: function(tooltipItems, data) {
                    return data.datasets[tooltipItems[0].datasetIndex].label;
                }               
            }               
        }
但这将返回每个气泡的所有标签的整个数组。我想这是因为我是如何填充标签的

    data = {
 labels: LabelArray,
 datasets: [{
   label: LabelArray,
       data: chartData
   }]};
我在数据和数据集下有标签,因为它不适用于数据集下的标签

非常感谢您提供有关如何解决此问题的任何信息

我的阵列的示例数据:

    chartData: 
    0: Object { x: "2786", y: "12.4", r: "15.32" }
    1: Object { x: "4998", y: "23.7", r: "52.46" }​
    2: Object { x: "719", y: "20.4", r: "6.5" }​ 
    3: Object { x: "3649", y: "15.9", r: "25.73" }

    LabelArray: 
    0: "A"​ 
    1: "B"​ 
    2: "C"​ 
    3: "D"
致以最良好的祝愿,
David

根据您在上面发布的示例数据,这是您在
数据中传递给工具提示的内容。问题是当数组应该是字符串时,您正在将它传递给
标签

如果您试图传递具有不同标签的多个数据点,则需要将
数据集拆分为一组对象,如下所示

data = {
    datasets: [
      {
        label: "A",
        data: [{ x: "2786", y: "12.4", r: "15.32" }​]
      },
      {
        label: "B",
        data: [{ x: "4998", y: "23.7", r: "52.46" }​]
      },
      {
        label: "C",
        data: [{ x: "719", y: "20.4", r: "6.5" }​]
      },
      {
        label: "D",
        data: [{ x: "3649", y: "15.9", r: "25.73" }]
      }
  ]
};
如果必须将标签保存到数组中,则需要提取构建图表数据时所需的标签。像这样的东西应该有用

dynamicData =[
  { x: "2786", y: "12.4", r: "15.32" }​,
  { x: "4998", y: "23.7", r: "52.46" }​
];
labelArray = ["A","B","C","D"];
parsedData = [];

for(let i = 0; i < dynamicData.length; i++) {
    parsedData.push({
      label: labelArray[i],
      data: [dynamicData[i]]
    });
}

data = {
    datasets: parsedData
};
dynamicata=[
{x:“2786”,y:“12.4”,r:“15.32”}​,
{x:“4998”,y:“23.7”,r:“52.46”}​
];
标签阵列=[“A”、“B”、“C”、“D”];
parsedData=[];
for(设i=0;i
添加一些sampledata图表数据:0:Object{x:“2786”,y:“12.4”,r:“15.32”}​ 1:对象{x:“4998”,y:“23.7”,r:“52.46”}​ 2:对象{x:“719”,y:“20.4”,r:“6.5”}​ 3:对象{x:“3649”,y:“15.9”,r:“25.73”}标签阵列:0:“A”​ 1:“B”​ 2:“C”​ 3:“D”目标是在数据集工具提示中动态添加每个数据集的标签。标签存储在一个数组中。也许我没有得到你的答案?我在原始答案中添加了一些样本数据。也许我的数组格式不正确?谢谢你的回复和更新!有什么方法可以动态地做到这一点吗?因为我永远无法事先告诉你会有多少数据点,你可能会问,我只是更新了我的答案,告诉你如何动态地做:)我想我可以在创建图表后循环我的数组并添加数据集?再次感谢你的回答!我想我快到了。dataset对象对我来说似乎很好——但不知何故,我无法让它工作。我创建了这个简化的小提琴作为例子
dynamicData =[
  { x: "2786", y: "12.4", r: "15.32" }​,
  { x: "4998", y: "23.7", r: "52.46" }​
];
labelArray = ["A","B","C","D"];
parsedData = [];

for(let i = 0; i < dynamicData.length; i++) {
    parsedData.push({
      label: labelArray[i],
      data: [dynamicData[i]]
    });
}

data = {
    datasets: parsedData
};