在Chartjs中更改Y轴单位

时间:2016-09-22 18:08:48

标签: chart.js

我觉得这是一个没有文档记录的功能,但我承认,我更有可能接受它。

我有一个charjs对象:

df[ave(df$retweetCount,df$text, FUN = function(x) order(x, decreasing = T)) == 1, ]

# text           id     screenName retweetCount isRetweet retweeted longitude latitude
#1  xx   7.789807e+17  0504Traveller            0     FALSE     FALSE      <NA>     <NA>
#4  yy   7.789550e+17 travelindtoday            2     FALSE     FALSE      <NA>     <NA>
#5  zz   7.789487e+17           umtn            2     FALSE     FALSE      <NA>     <NA>

看起来像这样:

enter image description here

我的问题是y轴是几分钟,我想要几个小时。我对这个功能集有点迷失 - 这有可能吗?

2 个答案:

答案 0 :(得分:3)

使用简单的手工制作功能:

function minutesToHours(minutes) {
    var hour = Math.floor(minutes / 60);
    minutes = minutes % 60;
    return ((hour < 10) ? "0"+hour : hour) + ":" + ((minutes < 10) ? "0"+minutes : minutes);
}

然后,您可以使用yAxes刻度的userCallback属性,如下所示:

options: {
    scales: {
        yAxes: [{
            ticks: {
                userCallback: function(item) {
                    return minutesToHours(item);
                },
            }
        }]
    }
}

<小时/> 您可以看到一个工作示例on this fiddle,结果如下:

enter image description here

答案 1 :(得分:0)

根据官方文档creating custom tick formats,只需使用回调函数。

&#13;
&#13;
var chart = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    // Include a dollar sign in the ticks
                    callback: function(value, index, values) {
                        return '$' + value;
                    }
                }
            }]
        }
    }
});
&#13;
&#13;
&#13;