如何解决Chart.js基于值散点图填充图表的部分
我正在尝试在Chart.js中重现此图像。
我的问题是如何根据图像中的线值填充区域?目前,数据已正确显示,但无法管理颜色。
这是我目前的代码:
var xPoints = [];
var yPoints = [];
var storage = [];
for(var i=0; i<data.cost.length; i++)
{
xPoints[i] = data.electricity[i];
yPoints[i] = data.cost[i];
x = xPoints[i];
y = yPoints[i];
var coordinates = {x: x,y: y};
storage.push(coordinates);
}
var ctx = document.getElementById("myChart");
var chart_wrapper = document.getElementsByClassName("chart-wrapper");
var myChart = new Chart(ctx,{
type: "scatter",data: {
datasets: [
{
label: label,data: storage,yAxisID: "primary",borderWidth: 4,type: "line",backgroundColor: "rgba(107,80,255)",},],options: options }});
解决方法
答案:
这解决了我的问题。
plugins: [{
beforeRender: function (x,options) {
var c = x.chart
var dataset = x.data.datasets[0];
var yScale = x.scales['primary'];
var yPos = yScale.getPixelForValue(0);
var gradientFill = c.ctx.createLinearGradient(0,c.height);
gradientFill.addColorStop(0,'green');
gradientFill.addColorStop(yPos / c.height - 0.01,'green');
gradientFill.addColorStop(yPos / c.height + 0.01,'red');
gradientFill.addColorStop(1,'red');
var model = x.data.datasets[0]._meta[Object.keys(dataset._meta)[0]].dataset._model;
model.backgroundColor = gradientFill;
}
}],
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。