c3 js - >我需要移动/更改我的x轴标签

时间:2016-02-18 22:48:27

标签: javascript html d3.js c3.js

(我特意使用c3.js,但它是一个d3.js库,所以我添加了两个标签)

我正在尝试制作一个图表,根据用户点击的月份显示“月份”的数据。我遇到的问题是x轴标签显示的是0-X而不是1-X。

所以例如二月显示0 - 27而不是1-28。

an example showing February

此图的代码如下所示:

var chart = c3.generate({
    bindto: '#graph',
    data: {
        columns: [
            daysArray
        ],
        type: 'bar'
    },
    bar: {
        width: {
            ratio: 1
        }
    }
});

非常简单......'daysArray'是数据(没有任何天数为0)它包含一个标签('Expenses')和28个值。

我尝试添加这段代码:

var chart = c3.generate({
    bindto: '#graph',
    data: {
        columns: [
            daysArray
        ],
        type: 'bar'
    },
    /*==========ADDED THIS SECTION=========*/
    axis: {
        x:{
            tick: {
                values: monthLengthArray,
            }
        }
    },
    /*======================================*/
    bar: {
        width: {
            ratio: 1
        }
    }
});

使用'monthLengthArray'来记录每个月的日期。 即。如果用户点击2月。它包含值1 - 28 ... Jan.包含1-31 ......等等,它看起来像这样:

an example showing February with added code

基本相同,但是有一个空白的0列。为了澄清,对于两次尝试,数据都在正确的“日期”,但“向右移动”......

我确定这是一个简单的修复,但是这个问题的措辞非常困难(在发布之前我没有找到答案,但我确实看过了)

还有一点需要注意:我没有在x轴上使用'timeseries'。我正在使用默认值(我认为是'索引')。我确定索引与它有关,但我不确定如何告诉它以1而不是0开始索引!

谢谢!

1 个答案:

答案 0 :(得分:3)

如果问题只是将标签的值向上移动1,请在设置中尝试此段:

axis: { 
   x: {
        tick: {
            format: function (x) { return x+1; }
        }
    }
}