Javascript 如何在Chart.js中忽略具有相同值的点

Javascript 如何在Chart.js中忽略具有相同值的点,javascript,chart.js,Javascript,Chart.js,我有一个使用chart.js的图表,它运行良好,只是我希望图表在y值相同时绘制一条直线。例如,在下图中,我有一些数据,其中有数百个连续的y值为1。我想要的不是图表为每个连续的y值1呈现一个点,而是一条直线。我已经阅读了所有选项的文档,但没有找到适合我需要的选项。有人有什么想法吗 代码: 提前感谢您的帮助首先,使用以下功能对数据进行因子分析: function factorData(data) { let _data = data.map((e, i, a) => { l

我有一个使用chart.js的图表,它运行良好,只是我希望图表在y值相同时绘制一条直线。例如,在下图中,我有一些数据,其中有数百个连续的y值为1。我想要的不是图表为每个连续的y值1呈现一个点,而是一条直线。我已经阅读了所有选项的文档,但没有找到适合我需要的选项。有人有什么想法吗

代码:


提前感谢您的帮助

首先,使用以下功能对数据进行因子分析:

function factorData(data) {
   let _data = data.map((e, i, a) => {
      let prev = a[i - 1];
      let next = a[i + 1];
      if (e === prev && e === next) return '' + e;
      return e;
   }).map(e => typeof e === 'string' ? null : e);
   return _data;
}
然后,将数据集的
spanGaps
属性设置为
true
,如下所示:

...
datasets: [{
         data: factorData(eventCounts),
         spanGaps: true
         ...

见a.

改进ᴜɴᴛ'答案

要将性能提高2倍,请执行以下操作:

(不在数组上重复第二次)

也别忘了


如果您查看图像,一行中有数百个值为1。我只想在y值改变时显示点
...
datasets: [{
         data: factorData(eventCounts),
         spanGaps: true
         ...
function factorData(data) {
   return data.map((e, i, a) => {
      let prev = a[i - 1];
      let next = a[i + 1];
      if (e === prev && e === next) return null;
      return e;
   });
}
...
datasets: [{
  data: factorData(eventCounts),
  spanGaps: true
...