Javascript Chartjs-生产线从。。。但要维护x轴数据

Javascript Chartjs-生产线从。。。但要维护x轴数据,javascript,charts,chart.js,linechart,Javascript,Charts,Chart.js,Linechart,我根据一些输入数据创建了一个动态折线图。这样做的目的是,客户可以通过下拉列表指示“投资”应在哪个月开始 例如,如果“投资”直到第6个月才开始,那么这条线应该只从x轴上的6开始。但其他行“Case”和“ROI”仍然应该从1开始 我试过好几件事,但都没用 我尝试根据用户的选择更改x轴的“最小刻度”,但这会使所有线从另一点开始,而不是仅从“投资”线开始。另一个问题是,选择之前的每个数字都会从x轴消失。但我真的希望每个数字都保持在1-60之间,即使用户选择在第10个月开始“投资” 我真的非常感谢你的帮助

我根据一些输入数据创建了一个动态折线图。这样做的目的是,客户可以通过下拉列表指示“投资”应在哪个月开始

例如,如果“投资”直到第6个月才开始,那么这条线应该只从x轴上的6开始。但其他行“Case”和“ROI”仍然应该从1开始

我试过好几件事,但都没用

我尝试根据用户的选择更改x轴的“最小刻度”,但这会使所有线从另一点开始,而不是仅从“投资”线开始。另一个问题是,选择之前的每个数字都会从x轴消失。但我真的希望每个数字都保持在1-60之间,即使用户选择在第10个月开始“投资”

我真的非常感谢你的帮助!谢谢

这是我的小提琴:

var选项={
键入:“行”,
数据:{
标签:[],
数据集:[{
标签:'案例',
数据:[],
背景颜色:“rgba(152164135,0.5)”,
边框颜色:“rgb(152164135)”,
填充:假
}, {
标签:'案例',
数据:[],
背景颜色:“rgba(145139167,0.5)”,
边框颜色:“rgb(145139167)”,
填充:假
}, {
标签:'案例',
数据:[],
背景颜色:“rgba(206157206,0.5)”,
边框颜色:“rgb(206157206)”,
填充:假
}]
},
选项:{
图例:{
显示:对,
位置:“顶部”
},
比例:{
xAxes:[{
滴答声:{
贝吉纳泽罗:是的,
autoSkip:是的,
最大旋转:0,
最小旋转:0
}
}],
雅克斯:[{
滴答声:{
回调:值=>{
返回“€”+值;
}
}
}]
}
}
}
for(设i=1;i set.label==“Case”).data.push(caseMonth);
持续投资月=500000+(20000*i);
options.data.datasets.find(set=>set.label==“Investment”).data.push(investMonth);
const roiMonth=案例月-投资月;
options.data.datasets.find(set=>set.label==“ROI”).data.push(ROI月);
}
var ctx=document.getElementById('chartJSContainer').getContext('2d');
新图表(ctx,选项)
canvas{背景色:#eee;
}

您可以在图表数据上输入null值,以便一行可以在其他行之后开始。例如,如果您希望投资行从第10个月开始,可以将前10个月的投资行值替换为null

如果理解正确,您仍然希望在ROI月计算中使用investMonth值,因此我创建了“investMonthValue”,因此只有小于investmentStartMonth的投资才会为空

let investmentStartMonth = 10

for (let i = 1; i <= 60; i++) {
    options.data.labels.push(i);

  const caseMonth = 118187 * i;
  options.data.datasets.find(set => set.label === "Case").data.push(caseMonth);

  let investMonth = 500000 + (20000 * i);
  let investMonthValue = i<investmentStartMonth?null:investMonth
  options.data.datasets.find(set => set.label === "Investment").data.push(investMonthValue);

  const roiMonth = caseMonth - investMonth;
  options.data.datasets.find(set => set.label === "ROI").data.push(roiMonth);
}
让投资开始每月=10
for(设i=1;i set.label==“Case”).data.push(caseMonth);
假设投资月=500000+(20000*i);
让investMonthValue=i set.label==“Investment”).data.push(investMonthValue);
const roiMonth=案例月-投资月;
options.data.datasets.find(set=>set.label==“ROI”).data.push(ROI月);
}

非常感谢您!这确实解决了问题。不知道这么简单。