我尝试用注解插件创建十字线,我设法修改了线的值,但它在图表上没有更新。
以下是图表选项的概述:
public financialChartOptions: ChartConfiguration['options'] = {
plugins: {
annotation: {
annotations: {
line1: {
id: 'line1',
type: 'line',
borderColor: 'black',
borderWidth: 3,
scaleID: 'y',
value: 30
}
}
},
},
onHover: (e: any) => {
e.native.target.style.cursor = 'crosshair';
this.crosshair(e)
},
onLeave: function (e: any) {
e.native.target.style.cursor = 'default';
}
}
这是我的十字准线函数:
crosshair(e: any) {
//@ts-ignore
this.chart!.options!.plugins!.annotation!.annotations!["line1"].value = e.chart.scales.y.getValueForPixel(e.y)
//@ts-ignore
console.log(this.chart!.options!.plugins!.annotation!.annotations!["line1"].value)
this.chart?.update()
}
console.log返回所需的值,但图表上没有任何变化。
请让我知道,如果有更好的方法来创建垂直和水平十字准线。
1条答案
按热度按时间tuwxkamq1#
Chart.js有一个插件称为
chartjs-plugin-crosshair
也许这将满足您的要求,做检查出来!reference stackblitz