D3刷新轴标签

时间:2012-05-28 15:06:08

标签: refresh axis d3.js

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

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(),但这会阻止放下下一个轴。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

哎呀,需要重新定义比例并调用转换,而不是仅仅构建一个全新的轴。

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

答案 1 :(得分:0)

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