I am attempting to create a line chart where the color of the line (and the points) is dependant upon the value being plotted. For example if the value is above the following thresholds [0, 115, 125] then the color would be either ['green', 'yellow', 'red'] respectively.
The requirement is nearly identical to that which is achieved in this example: https://jsfiddle.net/egamegadrive16/zjdwr4fh/
The difference is that I am using react-chart-js-2 and as a result, the draw() method is not accessible in the same way. Instead, it is suggested to create a plugin to manipulate the chart.
This is the plugin code at present:
import { Chart } from "react-chartjs-2";
class variableLineColorUtils {
  selectColor(value, thresholds, colors) {
    let color = colors[0];
    thresholds.every((limit, index) => {
      if (value < limit) return false;
      else color = colors[index];
      return true;
    });
    return color;
  }
}
const variableLineColor = {
  id: "variableLineColor",
  afterDraw: (chart, easing) => {
    const options = chart.options.variableLineColor;
    if (options) {
      const utils = new variableLineColorUtils();
      const datasets = chart.config.data.datasets;
      datasets.forEach((set, i) => {
        const points = chart.getDatasetMeta(i).data;
        points.forEach((point, index) => {
          const color = utils.selectColor(
            datasets[i].data[point._index],
            options.thresholds,
            options.colors
          );
          point.custom = { borderColor: color, backgroundColor: color };
        });
        chart.update();
      });
    }
  }
};
Chart.pluginService.register(variableLineColor);
export default variableLineColor;
And these are the options used for the plugin:
variableLineColor: {
  thresholds: [0, 115, 125],
  colors: ["green", "yellow", "red"]
}
This approach only amends the color of the points themselves, not the line between the points. The line remains in the chart's default backgroundColor.
How can I amend the color of the line itself?
 
    

 
     
     
     
    