【发布时间】:2016-04-28 12:28:19
【问题描述】:
我知道这可能是有史以来写的最糟糕的代码,但请多多包涵,我真的不明白 D3 的窍门(还)。
所以我有以下图表https://jsfiddle.net/El4a/sfu07q67/6/
包含很多hacky代码。我需要的是显示过去 12 个月的数据,最后显示的月份是当前月份。所以在这种情况下(现在是 4 月),x 轴的范围是从 5 月(2015 年)到 4 月(2016 年)。像这样:
到目前为止,图表上的数据显示正确。
然而,这些标签真的很痛苦。我把它们弄得差不多了,但由于某种奇怪的原因,最旧的(5 月)和当前的(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;
});
谁能帮帮我?
【问题讨论】:
-
顺便说一下,页面(图表)调整大小后x轴会消失,你也一样吗?
-
是的,我也注意到了这一点,不过我现在最不担心 ;-)
标签: d3.js nvd3.js axis-labels