Javascript 如何根据勾号位置是否为';在d3js v3中为负/正

Javascript 如何根据勾号位置是否为';在d3js v3中为负/正,javascript,d3.js,Javascript,D3.js,我有(已解决)条形图,当数据从正更新为负时,我想在其中更新y记号的位置,反之亦然 我已尝试更新更新函数和筛选器中的.tick类 .filter(function(d, i) { return data[i]['value' + TEAM] < 0; }); .filter(函数(d,i){返回数据[i]['value'+TEAM]

我有(已解决)条形图,当数据从正更新为负时,我想在其中更新y记号的位置,反之亦然

我已尝试更新更新函数和筛选器中的.tick类

.filter(function(d, i) { return data[i]['value' + TEAM] < 0; });
.filter(函数(d,i){返回数据[i]['value'+TEAM]<0;});
和其他各种方法更新位置,但我没有得到任何回报


任何帮助都将不胜感激

我自己找到了解决方案,问题是过滤器功能中调整的刻度

.filter(function(d, i) { return data[i]['value' + TEAM] < 0; });
.filter(函数(d,i){返回数据[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;}});
.filter(函数(d,i){if(数据[i]['value'+TEAM]>0)
{return true;}否则如果(数据[i]['value'+TEAM]<0){return true;}});
确保包含所有刻度

之后,我只更新update函数中的追加文本&行,如下所示

    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;}});
tickPosNeg.select(“行”).transition().持续时间(600)
.attr(“x2”,函数(d,i){if(数据[i]['value'+TEAM]>0)
{return-10;}如果(数据[i]['value'+TEAM]<0){return 10;}});
tickPosNeg.select(“text”).transition().持续时间(600)
.attr(“x”,函数(d,i){if(数据[i]['value'+TEAM]>0)
{return-25;}如果(数据[i]['value'+TEAM]<0){return 10;}});
如果有人有更好的解决方案,请随时发布您的答案

这是最新消息