May be easiest will be to use gradient but that is possible only if you have full control over the chart object, so not as easy as with chart node directly.
Modified an old example ..
[{"id":"8496abf.bdd4b58","type":"ui_template","z":"69a83901969741f7","group":"6d56c1dd.99aa2","name":"Line Chart","order":4,"width":"15","height":"10","format":"","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","x":830,"y":300,"wires":[[]]},{"id":"e91eab68.64fd68","type":"template","z":"69a83901969741f7","name":"","field":"template","fieldType":"msg","format":"html","syntax":"mustache","template":"<canvas id=\"myChart\" width=600 height=380></canvas>\n<script>\nvar textcolor = getComputedStyle(document.documentElement).getPropertyValue('--nr-dashboard-widgetTextColor');\nvar gridcolor = getComputedStyle(document.documentElement).getPropertyValue('--nr-dashboard-groupBorderColor');\n\nvar ctx = document.getElementById('myChart').getContext('2d');\nvar linecolors = {hi:\"#ff0000\",normal:\"#00ff00\",low:\"#0000ff\"}\n\nvar gradientStroke = ctx.createLinearGradient(0, 0, 0, 380);\ngradientStroke.addColorStop(0, linecolors.hi);\ngradientStroke.addColorStop(0.25, linecolors.hi);\ngradientStroke.addColorStop(0.25, linecolors.normal);\ngradientStroke.addColorStop(0.75, linecolors.normal);\ngradientStroke.addColorStop(0.75, linecolors.low);\ngradientStroke.addColorStop(1, linecolors.low);\n\nvar chart = new Chart(ctx, {\n // The type of chart we want to create\n type: 'line',\n\n // The data for our dataset\n data: {\n labels: [],\n datasets: [\n {\n label: 'first',\n backgroundColor: gradientStroke,\n borderColor: gradientStroke,\n data: [],\n yAxisID: 'left-y-axis',\n steppedLine: false,\n fill: false,\n borderWidth: 1\n }\n ]\n },\n\n // Configuration options go here\n options: {\n scales: {\n yAxes: [\n {\n gridLines :{zeroLineColor:gridcolor,color:gridcolor,lineWidth:0.5},\n id: 'left-y-axis',\n type: 'linear',\n position: 'left',\n ticks: {\n fontColor: textcolor\n }\n }\n ],\n xAxes: [\n {\n gridLines :{zeroLineColor:gridcolor,color:gridcolor,lineWidth:0.5},\n type: 'time',\n distribution: 'series',\n time:{\n displayFormats: {\n quarter: 'MMM YYYY',\n millisecond:'h:mm:ss',\n second:\t'h:mm:ss',\n minute:\t'h:mm',\n hour:\t'h' \n }\n },\n \n ticks: {\n fontColor:textcolor\n }\n }\n ]\n }\n }\n});\nfunction addData(chart, data, label) {\n // same calculation as for data storage at server side\n // data.x is newest data so treated as now.\n var old = data.x - 1000 * 60 * 2 \n \n chart.data.datasets.forEach((dataset) => {\n if(dataset.label == label){\n dataset.data.push(data);\n }\n dataset.data = dataset.data.filter(entry => entry.x > old)// filter out old data.\n \n });\n chart.update(0);//0 means no animation\n}\nfunction restoreChart(chart, data) {\n // overwrite datasets (but not clear all)\n // based on incoming data\n // if chart has datasets which then not found from icoming data, those remain\n var dataset\n Object.keys(data).forEach(label => {\n dataset = chart.data.datasets.find(ds => {return ds.label === label })// find corresponding dataset\n if(dataset){\n dataset.data = data[label]// if found, replace with incoming data for that dataset\n }\n })\n chart.update(0);//0 means no animation\n}\n(function(scope) {\n scope.$watch('msg', function(msg) {\n if(msg) {\n if (msg.topic == \"restore\") {\n // restore chart\n restoreChart(chart, msg.payload)\n }\n else{\n //add datapoints one by one\n addData(chart, msg.payload, msg.topic)\n }\n }\n \n });\n})(scope);\n</script>\n","output":"str","x":640,"y":260,"wires":[["8496abf.bdd4b58"]]},{"id":"6d48838f.c861ac","type":"inject","z":"69a83901969741f7","name":"Initialize","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":400,"y":260,"wires":[["e91eab68.64fd68"]]},{"id":"15644e1e.7c2ab2","type":"inject","z":"69a83901969741f7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"1","crontab":"","once":false,"onceDelay":"0.62","topic":"","payloadType":"date","x":355,"y":340,"wires":[["c3575dfd.f6964"]],"l":false},{"id":"c3575dfd.f6964","type":"function","z":"69a83901969741f7","name":"fake data","func":"msg.payload = Math.round(Math.random() * 100)\nmsg.topic = 'first'\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":460,"y":340,"wires":[["1735652c.72d0ab"]]},{"id":"63e9f633.a79e08","type":"ui_ui_control","z":"69a83901969741f7","name":"","events":"connect","x":300,"y":300,"wires":[["d4de9d72.8ce92"]]},{"id":"1735652c.72d0ab","type":"function","z":"69a83901969741f7","name":"store","func":"var storage = flow.get('chartData') || {first:[],second:[]} // data structure to match the chart datasets\n\nvar now = new Date().getTime() // the moment of datapoint creation\nvar old = now - 1000 * 60 * 2 // too old data will be 2 minutes\nvar datapoint = {x:now, y:msg.payload} // create the datapoint\n\nstorage[msg.topic].push(datapoint) // push datapoint into correct object's array in storage\n\nstorage[msg.topic] = storage[msg.topic].filter(entry => entry.x > old)// filter out any too old data\n\nflow.set('chartData',storage)// write storage to flow context\n\nmsg.payload = datapoint // send out the created datapoint (msg.topic remains same)\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":340,"wires":[["8496abf.bdd4b58"]]},{"id":"99d40b3b.6ca708","type":"change","z":"69a83901969741f7","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"chartData","tot":"flow"},{"t":"set","p":"topic","pt":"msg","to":"restore","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":620,"y":300,"wires":[["8496abf.bdd4b58"]]},{"id":"d4de9d72.8ce92","type":"switch","z":"69a83901969741f7","name":"","property":"chartData","propertyType":"flow","rules":[{"t":"nnull"}],"checkall":"true","repair":false,"outputs":1,"x":450,"y":300,"wires":[["99d40b3b.6ca708"]]},{"id":"6d56c1dd.99aa2","type":"ui_group","name":"Chart","tab":"b7b17e22.6df42","order":3,"disp":true,"width":"15","collapse":false},{"id":"b7b17e22.6df42","type":"ui_tab","name":"Ovens","icon":"dashboard","order":1,"disabled":false,"hidden":false}]