chart.js v3 -数据抽取无法与缩放插件一起使用

vc6uscn9  于 2022-11-07  发布在  Chart.js
关注(0)|答案(1)|浏览(165)

在chart.js v3中,通过缩放插件放大时,数据抽取不起作用。
最初为100%时,数据抽取工作正常,但如果我放大,它就不再工作(即显示所有点)
如果我再次缩小到100%,那么数据抽取再次工作。
有什么想法如何解决这个问题吗?我需要调用一些东西来触发数据抽取后,缩放事件?

iaqfqrcu

iaqfqrcu1#

我怀疑它实际上是正确的。
代码示例前的一些可能的解释:
第一个
因为之前有人提出了一个修改方案:其思想是在每次缩放时重新执行抽取,以便具有可能的“最高分辨率”(对于历史:(第10页)
但是,您可能遗漏了(我想)抽取插件的以下属性(https://www.chartjs.org/docs/master/configuration/decimation.html#configuration-options):

  • 采样数:抽取后需要的点数
  • 阈值:您希望抽取发生的点数。通常,您可能希望样本=阈值,但这不是强制性的。

而“问题”可能是以下每一项的默认值:

  • sample:默认为画布宽度,以每像素拾取1个采样。
  • threshold:默认为画布宽度的4倍。

这意味着对于一个800 px的图形,您将有800个点,只有当您在当前范围内有超过8004个点时,才会进行抽取。
所以我想发生的是:假设在200 px的图形上显示1000个点。起初一切正常,但一旦放大,您将得到750个点,这将小于200
4,因此不会发生抽取,实际上您将得到750个点(而您期望的是200个点)
最后,您可能需要更新抽取插件配置,如下所示:

decimation: {
    enabled: true,
    algorithm: 'lttb',
    samples: 800,
    threshold: 800
}

相关问题