gpt4 book ai didi

javascript - Chart.js:仅在数据点的 x 轴上显示标签

转载 作者:太空狗 更新时间:2023-10-29 14:07:48 24 4
gpt4 key购买 nike

我正在使用 Chart.js 制作图表,但我的折线图的 x 轴有问题。我制作了一个多线图,一切看起来都很好,如下图所示。 current chart我想要实现的是,只有当图表上有数据点时,我的 x 轴(日期)上的标签才会显示,所以不是像现在这样所有的日子。我在整个 Web 开发方面并没有太多经验,因此非常感谢您的帮助。提前致谢。

我目前的代码:

function newDate(day, month) {
return moment().date(day).month(month);
}

var ctx = document.getElementById("chart_hr");
var tabPane = document.getElementById("overview_hr");
var data = {
labels: [newDate(8,8), newDate(10,8), newDate(12,8), newDate(17,8), newDate(21,8), newDate(23,8), newDate(28,8), newDate(1,9), newDate(4,9)],
datasets: [
{
fill: false,
data: [140, 180, 150, 150, 180, 150, 150, 150, 170],
lineTension: 0,
},
{
fill: false,
data: [80, 100, 80, 80, 80, 80, 100, 80, 100],
lineTension: 0,
}
]
};
var options = {
scales: {
xAxes: [{
type: 'time',
time: {
displayFormats: {
'millisecond': 'DD MMM',
'second': 'DD MMM',
'minute': 'DD MMM',
'hour': 'DD MMM',
'day': 'DD MMM',
'week': 'DD MMM',
'month': 'DD MMM',
'quarter': 'DD MMM',
'year': 'DD MMM',
},
unitStepSize: 1,
unit: 'day',
},
gridLines : {
display : false,
}
}],
yAxes: [{
ticks: {
min: 50,
max: 190,
stepSize: 10,
}
}],
},
};
var myLineChart = new Chart(ctx, {
type: 'line',
data: data,
options: options
});

最佳答案

我已经通过使用ticks 回调方法 和设置autoSkip false 解决了这个问题。但是,我没有使用时间刻度。在回调中,您可以传递您的日期和所需的格式,它将返回格式化的日期。
下面是相同示例代码的屏幕截图。
enter image description here

[示例代码]

var ctx = document.getElementById("chart_hr");
function newDate(day, month) {
return moment().date(day).month(month);
}


var data = {
labels: [newDate(8,8), newDate(10,8), newDate(12,8), newDate(17,8), newDate(21,8), newDate(23,8), newDate(28,8), newDate(1,9), newDate(4,9)],
datasets: [
{
fill: false,
data: [140, 180, 150, 150, 180, 150, 150, 150, 170],
lineTension: 0,
},
{
fill: false,
data: [80, 100, 80, 80, 80, 80, 100, 80, 100],
lineTension: 0,
}
]
};
var options = {
scales: {
xAxes: [{
ticks: {
autoSkip : false,
callback: function(value, index, values) {
return new moment(value).format('DD MMM');
}
},
gridLines : {
display : false,
}
}],
yAxes: [{
ticks: {
min: 50,
max: 190,
stepSize: 10
}
}],
},
};
var myLineChart = new Chart(ctx, {
type: 'line',
data: data,
options: options
});

关于javascript - Chart.js:仅在数据点的 x 轴上显示标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41284788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com