chart.js - 如何在 Chart.Js 中更改条形图工具提示的位置
解决方案
您需要定义一个新的工具提示位置模式,如下所示:
Chart.Tooltip.positioners.middle = elements => {
let model = elements[0]._model;
return {
x: model.x,
y: (model.base + model.y) / 2
};
};
此外,您必须tooltips
在图表中定义options
如下:
tooltips: {
position: 'middle', // must match the positioner function name defined above
yAlign: null, // to get rid of the pointer
xAlign: 'center'
}
请看下面的可运行代码片段,看看它是如何工作的:
Chart.Tooltip.positioners.middle = elements => {
let model = elements[0]._model;
return {
x: model.x,
y: (model.base + model.y) / 2
};
};
new Chart(document.getElementById("chart"), {
type: "bar",
data: {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [{
label: "My Dataset",
data: [65, 59, 80, 81, 56, 55, 40],
backgroundColor: ["rgba(255, 99, 132, 0.2)", "rgba(255, 159, 64, 0.2)", "rgba(255, 205, 86, 0.2)", "rgba(75, 192, 192, 0.2)", "rgba(54, 162, 235, 0.2)", "rgba(153, 102, 255, 0.2)", "rgba(201, 203, 207, 0.2)"],
borderColor: ["rgb(255, 99, 132)", "rgb(255, 159, 64)", "rgb(255, 205, 86)", "rgb(75, 192, 192)", "rgb(54, 162, 235)", "rgb(153, 102, 255)", "rgb(201, 203, 207)"],
borderWidth: 1
}]
},
options: {
tooltips: {
position: 'middle',
yAlign: null,
xAlign: 'center'
},
legend: {
display: false
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.min.js"></script>
<canvas id="chart" height="90"></canvas>
如果工具提示未以嵌入模式显示,则以整页模式显示结果图表。
推荐阅读
- x11 - 如何设置 VcXSrv 以与 WSL2 一起使用
- python - Dataframe.loc 不适用于多个索引,非常简单
- button - 有没有办法让按钮在第一次单击时更改一种颜色,然后在第二次单击时恢复为原始颜色?
- eclipse - 无法将服务器添加到 Eclipse Photon
- html - 如何制作一个显示等于flex时全显示?
- c# - 如何使用 SignalR 运行服务器端方法?
- sql-server - SQL Server 配置管理器 - 缺少服务
- c# - 有没有办法调用模型中的函数来设置值?ASP.NET C#
- r - 从不同 CSV 文件格式的文本中查找 CSV 文件中的特定字符串列表
- python-3.x - PySimpleGUI 不会更新元素的每个字符