Javascript 如何在Chartjs中仅显示xAxe上的两个数字,并且在图表上有两个以上的数字?(折线图)
我只想在2018年和2019年各一次,当2019年的数据开始时,实际上是这样的: 当我试着只放置两个标签时,它只显示了整个图表中的两个数字 我想实现的是,虽然我在图表上有很多数据,但我的x轴上两年的标签只显示了两次,所以不是所有的日子都像现在这样。我在整个web开发方面没有那么多经验,所以非常感谢您的帮助。提前谢谢Javascript 如何在Chartjs中仅显示xAxe上的两个数字,并且在图表上有两个以上的数字?(折线图),javascript,charts,chart.js,Javascript,Charts,Chart.js,我只想在2018年和2019年各一次,当2019年的数据开始时,实际上是这样的: 当我试着只放置两个标签时,它只显示了整个图表中的两个数字 我想实现的是,虽然我在图表上有很多数据,但我的x轴上两年的标签只显示了两次,所以不是所有的日子都像现在这样。我在整个web开发方面没有那么多经验,所以非常感谢您的帮助。提前谢谢 var config = { type: 'line', data: { labels: ['26.10.2018', '02.11.2018', '09.11.20
var config = {
type: 'line',
data: {
labels: ['26.10.2018', '02.11.2018', '09.11.2018', '16.11.2018', '23.11.2018', '30.11.2018', '07.12.2018', '14.12.2018', '21.12.2018', '28.12.2018', '31.12.2018', '01.01.2018', '04.01.2019', '11.01.2019', '18.01.2019', '25.01.2019', '01.02.2019', '08.02.2019', '15.02.2019', '22.02.2019', '01.03.2019'],
datasets: [{
label: 'Modell',
data: [{
x: '26.10.2018',
y: -4.43
}, {
x: '02.11.2018',
y: -3.47
}, {
x: '09.11.2018',
y: -3.34
}, {
x: '16.11.2018',
y: -3.62
}, {
x: '23.11.2018',
y: -4.20
}, {
x: '30.11.2018',
y: -3.70
}, {
x: '07.12.2018',
y: -4.04
}, {
x: '14.12.2018',
y: -3.75
}, {
x: '21.12.2018',
y: -4.46
}, {
x: '28.12.2018',
y: -4.50
}, {
x: '31.12.2018',
y: -4.50
},
{
x: '01.01.2018',
y: -4.50
}, {
x: '04.01.2018',
y: -4.05
}, {
x: '11.01.2018',
y: -3.76
}, {
x: '18.01.2018',
y: -3.64
}, {
x: '25.01.2018',
y: -3.38
}, {
x: '01.02.2019',
y: -3.09
}, {
x: '08.02.2019',
y: -3.24
}, {
x: '15.02.2019',
y: -2.88
}
],
fill: false,
}]
},
options: {
responsive: true,
title: {
display: true,
text: 'TAM Eurosectors Defensiv'
},
scales: {
xAxes: [{
display: true,
scaleLabel: {
display: true,
labelString: '2018 - 2019'
}
}]
}
}
};
绘制时间序列时,应使用。要使用它,首先需要更正数据集: 日期必须以明确的格式提供,即:YYYY-MM-DD。 你的日期必须按时间顺序排列。您的问题在图片和代码中都显示了2018-01之后的2018-10,这显然是一个bug。 完成此操作后,您可以根据需要简单地将时间轴配置为仅显示年份:
options: {
scales: {
xAxes: [{
type: "time",
time: {
unit: "year"
}
}
}
}
下面是一个完全有效的示例,使用如上所述更正的数据集。请注意,您不需要提供标签,因为时间轴会自动计算刻度标签
变量配置={
键入:“行”,
数据:{
数据集:[{
标签:'Modell',
数据:[{
x:‘2018-01-01’,
y:-4.50
}, {
x:‘2018-01-04’,
y:-4.05
}, {
x:‘2018-01-11’,
y:-3.76
},
{
x:‘2018-01-18’,
y:-3.64
}, {
x:‘2018-01-25’,
y:-3.38
}, {
x:‘2018-10-26’,
y:-4.43
}, {
x:‘2018-11-02’,
y:-3.47
}, {
x:‘2018-11-09’,
y:-3.34
},
{
x:‘2018-11-16’,
y:-3.62
}, {
x:‘2018-11-23’,
y:-4.20
}, {
x:‘2018-11-30’,
y:-3.70
},
{
x:‘2018-12-07’,
y:-4.04
}, {
x:‘2018-12-14’,
y:-3.75
}, {
x:‘2018-12-21’,
y:-4.46
}, {
x:‘2018-12-28’,
y:-4.50
}, {
x:‘2018-12-31’,
y:-4.50
}, {
x:‘2019-02-01’,
y:-3.09
},
{
x:‘2019-02-08’,
y:-3.24
}, {
x:‘2019-02-15’,
y:-2.88
}
],
填充:假
}]
},
选项:{
回答:是的,
标题:{
显示:对,
文本:'TAM EUROSEVIV'
},
比例:{
xAxes:[{
类型:时间,
时间:{
单位:年
},
scaleLabel:{
显示:对,
标签串:“2018-2019”
}
}]
}
}
};
新建Chartdocument.getElementByIdchart,配置;
关于时间,您应该使用更多选项
scales: {
xAxes: [{
type: 'time',
time: {
unit: 'year'
}
}]
},
您必须导入以获得更多计算和显示数据的选项。我用了它,所以你可以用德语日期格式显示标签。我不知道你是否需要它,只是看到你来自德国,你使用德语日期格式输入
以下是格式化工具提示的代码:
tooltips: {
callbacks: {
title: function(tooltipItem, data){
return moment(tooltipItem[0].label).format('DD.MM.YYYY')
}
}
}
注意:您的日期错误,例如“2018-01-01”而不是“2019-01-01”,并且在数据中添加标签时不需要额外的标签