gpt4 book ai didi

javascript - Charts.js - 如何为每个数据集设置自定义工具提示文本

转载 作者:行者123 更新时间:2023-12-02 20:53:47 24 4
gpt4 key购买 nike

使用charts.js,如何为每个数据集添加自定义工具提示文本?

对于数据集 1,我想将“some text 1”添加到工具提示中。

对于数据集 2,我想将“some text 2”添加到工具提示中。

使用tooltip callbacks我可以向工具提示添加额外的文本,但它会将相同的文本应用于两个数据集的工具提示。我下面的代码使用回调来做到这一点。但如何更改每个数据集的工具提示文本?

var chart = new Chart(ctx, {
// The type of chart we want to create
type: "line",
// The data for our dataset
data: {
labels: monthLabels,
datasets: [{
label: "Dataset 1",
data: [12, 123, 234, 32, 23],
}, {
label: "Dataset 2",
data: [4, 54, 765, 45, 5],
}]
},
// Configuration options go here
options: {
tooltips: {
enabled: true,
mode: 'single',
callbacks: {
label: function(tooltipItems, data) {
return tooltipItems.yLabel + 'some text here';
}
}
}
}
});

最佳答案

您可以通过引用当前数据集索引 tooltipItems.datasetIndex 轻松完成此操作,然后根据该索引设置工具提示文本,如下所示:

label: function(tooltipItems, data) {
var text = tooltipItems.datasetIndex === 0 ? 'some text 1' : 'some text 2'
return tooltipItems.yLabel + ' ' + text;
}

工作演示:

var ctx = document.getElementById('myChart').getContext('2d');
var chart = new Chart(ctx, {
// The type of chart we want to create
type: "line",
// The data for our dataset
data: {
labels: Array.from({length: 5}, (x,i)=> `Label ${i+1}`),
datasets: [{
label: "Dataset 1",
data: [12, 123, 234, 32, 23],
}, {
label: "Dataset 2",
data: [4, 54, 765, 45, 5],
}]
},
// Configuration options go here
options: {
tooltips: {
enabled: true,
mode: 'single',
callbacks: {
label: function(tooltipItems, data) {
var text = tooltipItems.datasetIndex === 0 ? 'some text 1' : 'some text 2'
return tooltipItems.yLabel + ' ' + text;
}
}
}
}
});
.chart-container {
width: 500px;
}
#myChart {
display: block;
width: 500px;
}
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>

<div class="chart-container">
<canvas id="myChart"></canvas>
</div>

关于javascript - Charts.js - 如何为每个数据集设置自定义工具提示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61538582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com