【发布时间】:2016-05-23 03:58:25
【问题描述】:
我想在图表底部显示两个 xAxis,一个放在另一个上方。因此,为了让我的坐标轴位于底部,我在 x1Axis 和 x2Axis 上都指定了 .orient('bottom')。
此外,我将transform 属性设置为translate(0, height),如下所示:
svg.append("g")
.attr("class", "x1 axis")
.attr("transform", "translate(0," + height + ")")
.call(x1Axis);
for(var i = 0 ; i < x1domain.length; i++){
svg.append("g")
.attr("class", "x2 axis")
.attr("transform", "translate("+ (x1.rangeBand()*i*(1/(1-x1padding))+ x1(x1domain[0])) + "," + height + ")")
.call(x2Axis);
}
因此我将 x1Axis 的 transform 属性修改为 translate(0, height-x) 以将轴向上移动一点。不管 x 的值是多少(尝试 {x | 1
因此我的问题是,我怎样才能让两个轴都在底部,一个在另一个之上?该行为似乎预定义为剪切到顶部或底部。
注意:为了便于讨论,请忽略我正在为我的 x2Axis 打印多个轴的事实。
【问题讨论】:
-
我在你正在做的一个轴
translate(0, height-x)上没有发现任何令人惊讶的地方,所以轴已经向上移动了。进行平移将相应地移动轴。 -
如果我写了
translate(0, height-height),那将是预期的行为,但在这种情况下translate(0, height-1)会产生相同的结果 -
x的值是多少?好像它大于height,你会得到负的translate's第二个坐标,即translate(0, -200)。 -
在这种情况下,我尝试了 { x | 1
标签: javascript d3.js charts