如何在时间图表中设置时间刻度的格式

时间:2017-10-28 22:27:43

标签: javascript chart.js

我想创建一个图表,将整数值映射到一年中的几天。非常像这个http://www.chartjs.org/samples/latest/scales/time/financial.html,但我希望每个月的第一天都有刻度,我不想显示年份。 (因为它发生在链接中没有显示年份,但我认为这是一个空间问题)

<canvas id="entries_by_doy" ></canvas>
var ctx = document.getElementById("entries_by_doy").getContext('2d');

var doyChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ["2016-09-01", "2016-10-01"],
        datasets: [{
          data: [{t:"2016-03-31", y: 2},{t:"2016-09-01", y: 3},{t:"2016-09-2", y: 4}]
        }]
    },
    options: {
       scales: {
          xAxes: [{type: 'time',
                   time: { displayFormats: { day: 'MMM D'}},
                   ticks: {source: 'labels'}
          }],
          yAxes: [{ ticks: {beginAtZero:true} }]
        }
    }
});

我希望displayFormats指定标签的格式,如"display formats are used to configure how different time units are formed into strings for the axis tick marks",但似乎会被忽略。

进度:
我可以使用tooltipFormat配置工具提示格式,但我仍然需要在x轴上配置刻度。 标签的长度似乎影响格式,分辨率也是如此。 Here标签是日期或时间,具体取决于窗口的宽度。 我尝试过使用像这样的回调

callback: function(value, index, values) {
                 if([0,29,60,90].some(x => x ==index)){
                      return value;
                 }
           }

但并非所有刻度都以这种方式显示。我认为这是因为显示未定义(没有任何内容)而不是关闭刻度。 似乎2.7.1的更新解决了它......

0 个答案:

没有答案