javascript - 隐藏系列后轴标签恢复到原始位置

标签 javascript d3.js nvd3.js

my NVD3 chart here ,我已将 X 轴标签向下移动,以便与垂直对齐的日期一致。为此我做了:

xTicks.select('.nv-axislabel').attr("y", 90);  // line # 81 in JS

现在的问题是,如果我使用右上角的控件隐藏任何系列,该 X 轴标签将恢复到日期后面的原始位置。

如何让它保持在新位置而不改变?

jsFiddle

最佳答案

有点肮脏的解决方案,但可能已经足够好了:

更改标签的y属性后,删除d3内部使用的类来选择标签并重置其属性:

xTicks.select('.nv-axislabel')
    .attr("y", 90)
    .classed({'nv-axislabel':false});

然后,d3 会在不需要的位置创建一个新标签,您可以将其添加到 CSS 文件中:

.nv-x .nv-axislabel {
    display:none;
}

我将其添加为规则,因为以编程方式执行此操作(使用 .style())需要太长时间,并且您可以看到它闪烁。

FIDDLE

关于javascript - 隐藏系列后轴标签恢复到原始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24605334/

相关文章:

javascript - 弧线内的折线图

javascript - 从辅助 Y 轴上的值中删除负号(Nvd3 - 多条水平图表)

javascript - jQuery 切片负索引不起作用

javascript - 从 typescript 库导入的符号未定义

d3.js - 使用 D3 计算用于重采样的样条线

javascript - D3.js 中带有标记的过渡路径长度使标记消失

javascript - 在 discreteBarChart nvd3.js 中使用数据自定义工具提示的工具提示内容

javascript - 使用 Greasemonkey 删除 javascript 函数

如果当前滚动位置靠近底部,则javascript滚动到div的底部

javascript - 通过 d3.js 中的对象属性过滤嵌套的对象数组