4

我有一个图表,其中显示了两组数据。用户可以点击一个按钮来翻转到另一组数据。问题是轴不一样,但是当我想更新刻度时,我只是在另一个轴的顶部分层。

http://jsfiddle.net/scottieb/VjHd6/

关键位在最后:

 vis.selectAll("axis").remove();

    vis.append("svg:g")
    .attr("class", "x axis")
    .attr("transform", "translate(0, " + (h - margin ) + ")")
    .call(d3.svg.axis()
    .scale(x)
    .tickSize(0)
    .tickSubdivide(true)
    .tickFormat(formatCurrency)
         );       

我已经尝试过 selectAll("g").remove(),但这会阻止放置下一个轴。有任何想法吗?

4

2 回答 2

0

哎呀,需要重新定义规模并调用过渡,而不仅仅是建立一个全新的轴。

http://jsfiddle.net/scottieb/JwaaV/

于 2012-05-28T15:16:45.620 回答
0

您的问题是您的选择器不正确。您应该选择“.axis”,而不是选择“axis”,因为您要附加一个带有类的“g”节点。

于 2013-12-19T18:59:21.290 回答