Angular |ChartJs Annotation Plugin -将线条的位置链接到鼠标

bpzcxfmw  于 2022-11-06  发布在  Chart.js
关注(0)|答案(1)|浏览(134)

我尝试用注解插件创建十字线,我设法修改了线的值,但它在图表上没有更新。
以下是图表选项的概述:

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返回所需的值,但图表上没有任何变化。
请让我知道,如果有更好的方法来创建垂直和水平十字准线。

tuwxkamq

tuwxkamq1#

Chart.js有一个插件称为chartjs-plugin-crosshair也许这将满足您的要求,做检查出来!
reference stackblitz

相关问题