我正在使用Chart.js创建一个图表,并且我的折线图的x轴有问题.我已经制作了一个多线图,一切都很好看,如下图所示.
我想要实现的是,当图表上有数据点时,我的x轴上的标签(日期)才会显示,所以现在不是所有的日子.我对整个Web开发工作没有那么多经验,所以任何帮助都会受到赞赏.提前致谢.
我想要实现的是,当图表上有数据点时,我的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,newDate(12,newDate(17,newDate(21,newDate(23,newDate(28,newDate(1,9),newDate(4,9)],datasets: [ { fill: false,data: [140,180,150,170],lineTension: 0,},{ fill: false,data: [80,100,80,100],} ] }; 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解决了这个问题.但是,我没有使用Timescale.在回调中,您可以传递日期和所需格式,它将返回格式化日期.
下面是相同和工作示例代码的屏幕截图.
下面是相同和工作示例代码的屏幕截图.
[样本代码]
var ctx = document.getElementById("chart_hr"); function newDate(day,month) { return moment().date(day).month(month); } var data = { labels: [newDate(8,} ] }; 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,stepSize: 10 } }],options: options });