在chart.js v3中,通过缩放插件放大时,数据抽取不起作用。最初为100%时,数据抽取工作正常,但如果我放大,它就不再工作(即显示所有点)如果我再次缩小到100%,那么数据抽取再次工作。有什么想法如何解决这个问题吗?我需要调用一些东西来触发数据抽取后,缩放事件?
iaqfqrcu1#
我怀疑它实际上是正确的。代码示例前的一些可能的解释:第一个因为之前有人提出了一个修改方案:其思想是在每次缩放时重新执行抽取,以便具有可能的“最高分辨率”(对于历史:(第10页)但是,您可能遗漏了(我想)抽取插件的以下属性(https://www.chartjs.org/docs/master/configuration/decimation.html#configuration-options):
而“问题”可能是以下每一项的默认值:
这意味着对于一个800 px的图形,您将有800个点,只有当您在当前范围内有超过8004个点时,才会进行抽取。所以我想发生的是:假设在200 px的图形上显示1000个点。起初一切正常,但一旦放大,您将得到750个点,这将小于2004,因此不会发生抽取,实际上您将得到750个点(而您期望的是200个点)最后,您可能需要更新抽取插件配置,如下所示:
decimation: { enabled: true, algorithm: 'lttb', samples: 800, threshold: 800 }
1条答案
按热度按时间iaqfqrcu1#
我怀疑它实际上是正确的。
代码示例前的一些可能的解释:
第一个
因为之前有人提出了一个修改方案:其思想是在每次缩放时重新执行抽取,以便具有可能的“最高分辨率”(对于历史:(第10页)
但是,您可能遗漏了(我想)抽取插件的以下属性(https://www.chartjs.org/docs/master/configuration/decimation.html#configuration-options):
而“问题”可能是以下每一项的默认值:
这意味着对于一个800 px的图形,您将有800个点,只有当您在当前范围内有超过8004个点时,才会进行抽取。
所以我想发生的是:假设在200 px的图形上显示1000个点。起初一切正常,但一旦放大,您将得到750个点,这将小于2004,因此不会发生抽取,实际上您将得到750个点(而您期望的是200个点)
最后,您可能需要更新抽取插件配置,如下所示: