(我特意使用c3.js,但它是一个d3.js库,所以我添加了两个标签)
我正在尝试制作一个图表,根据用户点击的月份显示“月份”的数据。我遇到的问题是x轴标签显示的是0-X而不是1-X。
所以例如二月显示0 - 27而不是1-28。
此图的代码如下所示:
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 ......等等,它看起来像这样:
基本相同,但是有一个空白的0列。为了澄清,对于两次尝试,数据都在正确的“日期”,但“向右移动”......
我确定这是一个简单的修复,但是这个问题的措辞非常困难(在发布之前我没有找到答案,但我确实看过了)
还有一点需要注意:我没有在x轴上使用'timeseries'。我正在使用默认值(我认为是'索引')。我确定索引与它有关,但我不确定如何告诉它以1而不是0开始索引!
谢谢!
答案 0 :(得分:3)
如果问题只是将标签的值向上移动1,请在设置中尝试此段:
axis: {
x: {
tick: {
format: function (x) { return x+1; }
}
}
}