我知道这可能是有史以来写得最糟糕的代码,但请容忍我,我真的还没有掌握D3的窍门。
所以我有下面的图表
https://jsfiddle.net/El4a/sfu07q67/6/
包含大量黑客代码。我需要的是显示最后12个月的数据,最后显示的月份是当前月份。因此,在这种情况下(现在是四月),x轴的范围是从2015年5月到2016年4月。如此类推:
到目前为止,图表上的数据显示正确。
然而,标签是一个真正的痛苦。我已经把它们准备好了,但由于一些奇怪的原因,最早的(五月)和当前的(四月)月份没有显示出来。
我正在按正确的顺序整理月份名称:
var months = ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"];
var x = [];
for (var i = 0; i < timePeriod.length; i++) {
if (timePeriod[i] === 0) {
x.push(months[timePeriod[i]]);
}
else {
x.push(months[timePeriod[i]-1]);
}
};
//result : ["Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec", "Jan", "Feb", "Maa", "Apr"]
然后尝试将其粘贴到图形上:
var count = 0;
chart.xAxis
.axisLabel('Month')
.tickValues([1,2,3,4,5,6,7,8,9,10,11,12])
.tickFormat(function(d) {
var label = x[count];
count++;
return label;
});
有人能帮我吗?