functiongetLineColor(ctx){return Utils.color(ctx.datasetIndex);}functionalternatePointStyles(ctx){const index = ctx.dataIndex;return index %2===0?'circle':'rect';}functionmakeHalfAsOpaque(ctx){return Utils.transparentize(getLineColor(ctx));}functionadjustRadiusBasedOnData(ctx){const v = ctx.parsed.y;return v <10?5: v <25?7: v <50?9: v <75?11:15;}const config ={type:'line',data: data,options:{plugins:{legend:false,tooltip:true,},elements:{line:{fill:false,backgroundColor: getLineColor,borderColor: getLineColor,},point:{backgroundColor: getLineColor,hoverBackgroundColor: makeHalfAsOpaque,radius: adjustRadiusBasedOnData,pointStyle: alternatePointStyles,hoverRadius:15,}}}};
functiongenerateData(){return Utils.numbers({count:DATA_COUNT,min:0,max:100});}const data ={labels: Utils.months({count:DATA_COUNT}),datasets:[{data:generateData()}]};