javascript - 在 Chart.js 上使用垂直线更新折线图
问题描述
我正在尝试在多线图表上绘制一条垂直线,但我遇到了函数不更新图表的问题,除非鼠标悬停在图表的刻度上。我使用了另一个问题的答案,用户希望在悬停时添加更新刻度的功能。这是另一个问题的链接:
这是我从上面的例子中理解的实现:
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP","OCT", "NOV", "DEC"],
datasets: [{
data: [12, 3, 2, 1, 8, 8, 2, 2, 3, 5, 7, 1]
}]
}
});
var lineDraw = Chart.controllers.line.prototype.draw;
Chart.helpers.extend(Chart.controllers.line.prototype, {
draw: function() {
lineDraw.apply(this, arguments);
var chart = this.chart;
var ctx = chart.chart.ctx;
var activePoint = this.chart.tooltip._active[0];
var ctx = this.chart.ctx;
var x = myChart.scales["x-axis-0"].getPixelForTick(0);
var topY = this.chart.scales['y-axis-0'].top;
var bottomY = this.chart.scales['y-axis-0'].bottom;
// draw line
ctx.save();
ctx.beginPath();
ctx.moveTo(x, topY);
ctx.lineTo(x, bottomY);
ctx.lineWidth = 0.5;
ctx.strokeStyle = '#eeeeee';
ctx.stroke();
ctx.restore();
}});
解决方案
推荐阅读
- http - 我可以将 Postman 配置为仅在受到 401 挑战时才发送授权标头吗?
- javascript - 如何路由出动态路由?
- ios - iOS(Swift 5)中带有弯曲边缘的雷达/蜘蛛图
- bash - 使用 JQ 和类似过滤器过滤 bash 中的 IPv4 和 IPv6 地址
- reactjs - 如何在 react-markdown 中使用自定义组件
- ios - 在委托方法中无法检测到 IOS 通用链接
- python - 如何在 Python 中打印包含特定字符串的文本文件的行?
- css - Angular 10:mat-tabel 可扩展行
- html - 为什么在引导程序中同时崩溃显示 2 张卡?
- android - 发送短信的意图不再适用于 Android 11