Chartjs数据集重叠和z索引

vptzau2j  于 2022-11-07  发布在  Chart.js
关注(0)|答案(2)|浏览(180)

我使用chart.js 3.x版实现了下面的图表。
https://jsfiddle.net/Lxya0u98/12/
我的图表中有多个数据集以实现所需的行为。
我遇到了数据集重叠的问题。在图表中,blue color line的末端与green color dot数据集重叠。是否有方法可以避免此问题?
我有以下两个数据集:

// Data set for the Big Dot
{
   showLine: false,
   borderWidth: 0,
   lineTension: 0,
   borderColor: colorVal,
   backgroundColor: colorVal,
   pointBackgroundColor: colorVal,
   pointBorderColor: colorVal,
   pointBorderWidth: 2,
   pointRadius: 15,
};

// Data set for the Connecting Lines
{
   showLine: true,
   lineTension: 0,
   borderWidth: 5,
   borderColor: colorVal,
   pointRadius: 0,
   pointBorderWidth: 0,
   spanGaps: true,
};

数据集是否有Z索引,以便它们显示在堆栈中前一个数据集的顶部?

l0oc07j2

l0oc07j21#

选项dataset.orderz-index具有类似的效果。

  • 首先绘制order值较大的数据集
  • 无顺序或顺序较低的数据集最后绘制,因此显示在顶部

因此,将order: 1添加到线数据集应该可以解决此问题。

var newDataLine = {
  ...
  order: 1
};
l7wslrjt

l7wslrjt2#

您可以不定义多个数据集,而按以下步骤进行:

  • 首先将折线图转换为散点图。
  • 然后使用插件核心API直接在画布上绘制线条。该API提供了一系列可用于执行自定义代码的挂钩。您可以使用beforeDraw挂钩在数据点之间绘制不同颜色的连接线,并将其连接到图表的开放端。

请注意,您必须定义xAxes.ticks.max,以获得图表右侧的开口端线。
请看下面的可运行代码片段,看看它是如何工作的。
第一个

相关问题