如何更新刻度位置取决于它是否在d3js v3中为负/正

时间:2017-02-26 16:37:44

标签: javascript d3.js

我有this (已解决)条形图,我想在数据从正数更新为负数时更新y-ticks的位置,反之亦然。

我尝试更新更新功能和过滤器中的.tick类

.filter(function(d, i) { return data[i]['value' + TEAM] < 0; });

和其他各种方法来更新位置,但我什么也得不回。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案,问题是在过滤器功能中调整了滴答声

.filter(function(d, i) { return data[i]['value' + TEAM] < 0; });

仅调整了小于0的刻度,我的更新过滤器

.filter(function(d, i){ if (data[i]['value' + TEAM] > 0)
{return true;}else if (data[i]['value' + TEAM] < 0){return true;}});

确保包含所有刻度。

之后我只更新附加文字&amp;如此更新函数中的行

    tickPosNeg.select("line").transition().duration(600)
        .attr("x2",function(d, i){ if (data[i]['value' + TEAM] > 0)
{return -10;}else if (data[i]['value' + TEAM] < 0){return 10;}});

    tickPosNeg.select("text").transition().duration(600)
        .attr("x", function(d, i){ if (data[i]['value' + TEAM] > 0)
{return -25;}else if (data[i]['value' + TEAM] < 0){return 10;}});

如果有人有更好的解决方案,请随时发布您的答案!

这是更新的link