2 回答
TA贡献1831条经验 获得超10个赞
您应该使用时间 xAxis获得更多关于时间的选项。
scales: {
xAxes: [{
type: 'time',
time: {
unit: 'year'
}
}]
},
您必须导入moment.js以获得更多计算和显示数据的选项。我使用了它,因此您可以以德国日期格式显示标签(不知道您是否需要,只是看到您来自德国并且您使用德国日期格式进行输入)。
这是格式化工具提示的代码:
tooltips: {
callbacks: {
title: function(tooltipItem, data){
return moment(tooltipItem[0].label).format('DD.MM.YYYY')
}
}
}
这是 JSBin 中的所有代码
PS:您的日期有误,例如“2018-01-01”而不是“2019-01-01”,并且将它们放入数据时不需要额外的标签。
TA贡献1828条经验 获得超3个赞
当您绘制时间序列时,您应该使用时间轴类型。要使用它,您首先需要更正数据集:
必须以明确的格式(即ISO-8601)提供日期:YYYY-MM-DD.
您的日期必须按时间顺序排列。您的问题显示2018-01 在 2018-10图像和代码之后,这显然是一个错误。
完成此操作后,您可以根据需要简单地将时间轴配置为仅显示年份:
options: {
scales: {
xAxes: [{
type: "time",
time: {
unit: "year"
}
}
}
}
下面是一个使用您的数据集的完整示例(如上文详述的更正)。请注意,您不需要提供,labels因为时间轴会自动计算刻度标签。
var config = {
type: 'line',
data: {
datasets: [{
label: 'Modell',
data: [{
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
}
],
fill: false
}]
},
options: {
responsive: true,
title: {
display: true,
text: 'TAM Eurosectors Defensiv'
},
scales: {
xAxes: [{
type: "time",
time: {
unit: "year"
},
scaleLabel: {
display: true,
labelString: '2018 - 2019'
}
}]
}
}
};
new Chart(document.getElementById("chart"), config);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.min.js"></script>
<canvas id="chart"></canvas>
添加回答
举报