如何使用Chart.js像示例图像一样显示分组数据?

如何使用Chart.js像示例图像一样显示分组数据?,chart.js,Chart.js,我需要生成这种图表,我正在尝试使用chart.js。 我能画出点(这里是)下面是它的输出 还需要在其中添加两条水平线,但无法继续。是否可以在chart.js中生成此类图表?如果是,请让我知道如何才能做到这一点?如果没有,那么是否可以使用high charts或任何其他库 var ctx=document.getElementById('myChart').getContext('2d'); 变量选项={ 比例:{ xAxes:[{offset:true, 网格线:{ 偏移网格线:真 } }

我需要生成这种图表,我正在尝试使用chart.js。 我能画出点(这里是)下面是它的输出

还需要在其中添加两条水平线,但无法继续。是否可以在chart.js中生成此类图表?如果是,请让我知道如何才能做到这一点?如果没有,那么是否可以使用high charts或任何其他库


var ctx=document.getElementById('myChart').getContext('2d');
变量选项={
比例:{
xAxes:[{offset:true,
网格线:{
偏移网格线:真
}
}],
雅克斯:[{
网格线:{
抽边线:假
}
}],
},
};
var myChart=新图表(ctx{
键入:“行”,
选项:选项,
数据:{
标签:[“05/05/2021”、“06/05/2021”],
数据集:[{
数据:[49,51],
标签:“AM”,
边框颜色:“3e95cd”,
背景颜色:“rgb(62149205)”,
边界宽度:2,
键入:“行”,
填充:false,显示线:false
}, { 
数据:[47,48],
标签:“PM”,
边框颜色:“3cba9f”,
背景色:“3cba9f”,
边框宽度:2,显示线:false
}, { 
数据:[50,52],
标签:“夜晚”,
边框颜色:“ffa500”,
背景颜色:“ffa500”,
边框宽度:2,显示线:false
}            
]
},         
});

您可以添加第二个
x
轴,该轴显示其他空格的日期和空标签,然后可以在数据数组中使用
null
值使数据点显示在正确的点上

例如:


js混合图表
var ctx=document.getElementById('myChart').getContext('2d');
var myChart=新图表(ctx{
键入:“行”,
数据:{
标签:[“下午”、“上午”、“晚上”、“下午”、“上午”、“晚上”],
数据集:[{
数据:[null,49,null,null,51],
标签:“AM”,
边框颜色:“3e95cd”,
背景颜色:“rgb(62149205)”,
边界宽度:2,
键入:“行”,
填充:假,
展示路线:错误
}, {
数据:[47,空,空,48],
标签:“PM”,
边框颜色:“3cba9f”,
背景色:“3cba9f”,
边界宽度:2,
展示路线:错误
}, {
数据:[null,null,50,null,null,52],
标签:“夜晚”,
边框颜色:“ffa500”,
背景颜色:“ffa500”,
边界宽度:2,
展示路线:错误
}
]
},
选项:{
比例:{
xAxes:[{},
{
id:'日期',
类型:'类别',
位置:'底部',
标签:[”、“2021年5月5日”、“2021年5月5日”、“2021年5月6日”、“2021年5月5日”]
}
]
}
}
});

感谢您的意见@LeeLenalee。我使用plugin()添加了水平线,但一旦我为第二个x轴添加了代码,就什么都不起作用了,它会返回到正常的图形()。一个显著的区别是我使用的是v2.9.4,而你的是v3.3.0。当我更改cdn或添加3.3.0资源时,它会抛出错误。Mb注意到答案中也充满了垃圾,更新了它,并在V2中进行了清理