我正在努力创建一个年度有两个X轴和子组的折线图。因此,例如,如果我有4个季度(Q3,Q4,Q1,Q2)和Q3,Q4属于2014年,而Q1,Q2属于2015年,我将能够在第二个X轴上描绘这个。我在下面发布的imgur链接中有一个这样的示例,以及使用几个月而不是四分之一的类似示例。有没有人对我如何能够做到这一点有任何见解或例子?
var xAxis1 = d3.svg.axis()
.scale(x)
//.ticks(d3.time.months)
.tickFormat(monthformat)
.tickSize(5,0)
.orient("bottom");
var xAxis2 = d3.svg.axis()
.scale(x)
.ticks(d3.time.years, 1)
.tickFormat(yearformat)
.tickSize(5,0)
.orient("bottom");
答案 0 :(得分:1)
这个怎么样? JSFiddle
var quarter = function(date, i){
if(i > 0){
var date2 = new Date();
date2.setMonth(date.getMonth() - 1);
q = Math.ceil(( date2.getMonth()) / 3 );
return "Q" + q;
}
}
var xAxis3 = d3.svg.axis()
.scale(x)
.orient("bottom")
.ticks(d3.time.months, 3)
.tickSize(5, 0)
.tickFormat(quarter);
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + (height + 25) + ")")
.call(xAxis3);