Javascript ChartsJS为工具提示获取数据/数据集标签的值
我对ChartJS(以及一般的JS)非常陌生,在网上任何地方都找不到适合我的问题的答案 我正在尝试自定义Bubblechart中的工具提示,以适应以下格式: 数据集标签 x、 值:x y、 值:X 对于x和y值,我很好。但我不能得到我想要的标题 为了这个头衔,我现在正在努力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) {
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
};