我正在使用Chart.js创建一个简单的饼图,我想知道用户如何与该图表进行交互,因此如果他们单击或将鼠标悬停在某个部分上,它将在以下位置展开以提供更多信息:底部。
我已经搜寻了互联网,但只能找到弹出通知(单击事件)。我真正想要的是一个显示在底部的部分,最多包含一段信息。
以下是饼图的示例-说我想让“ Azure”在悬停时阅读“ Azure 45”,然后在底部扩展一些其他信息,例如“ Azure是浅蓝色的阴影在蓝色和青色之间旋转。”
这是我的代码-希望我要传达的内容有意义-预先感谢您!
var ctx = document.getElementById('myChart').getContext('2d');
var chart = new Chart(ctx, {
// The type of chart we want to create
type: 'pie',
data: {
labels: ["Navy", "Ruby", "Emerald", "Orange", "Azure"],
datasets: [{
label: "My First dataset",
backgroundColor: ["#0074D9", "#FF4136", "#2ECC40", "#FF851B", "#7FDBFF"],
data: [10, 20, 30, 40, 45],
}]
},
// Configuration options go here
options: {
responsive: true,
title:{
display: true,
text: "Colour test"
}
}
});
答案 0 :(得分:0)
在图表下方显示其他信息可能不在Chart.js的范围内,因此您需要自己进行例如以下操作:在图表下方放置一个单独的DIV,该图表会动态更新。所以问题是,如何触发更新?
我还没有找到在段上侦听悬停事件的方法。但是,Chart.js为工具提示提供了一系列回调,每当用户悬停某个元素时就会触发这些回调,请参见:https://www.chartjs.org/docs/latest/configuration/tooltip.html#tooltip-callbacks
您可以像这样钩住其中之一:
const chartOptions = {
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
const dataSet = data.datasets[tooltipItem.datasetIndex];
const value = dataSet.data[tooltipItem.index];
// Now trigger a data update / display of a separate DIV with your information.
// Don't forget to return your desired label value.
return value;
}
}
}
}