javascript - D3 树形图重置颜色

标签 javascript d3.js

我目前正在开发一个使用树形图的软件可视化工具。

IMG:https://www.dropbox.com/s/7s5np5x7or94tky/Screenshot%202014-03-25%2010.31.51.png

在我的工具中,您可以搜索元素,然后根据您选择的颜色在树状图中突出显示这些元素。现在我需要将元素的颜色恢复为突出显示之前的颜色。

有什么方法可以完全重新渲染树状图,或者更好的方法来恢复单个元素(例如d3.select("#e-123").resetColor())?

最佳答案

D3 中没有“重置”属性值的功能。这里有两个选项。

为突出显示指定 CSS 类

突出显示的代码将类似于

d3.select("foo").classed("highlight", true);

并重置

d3.select("foo").classed("highlight", false);

设置时将旧属性值与数据一起存储

要设置突出显示,代码如下所示

d3.select("foo").attr("color", function(d) {
  d.oldColor = d3.select(this).attr("color");
  return newColor;
});

然后重置

d3.select("foo").attr("color", function(d) { return d.oldColor; });

第一种方法代码较少,但如果您有大量不同的颜色,第二种方法可能更方便。

关于javascript - D3 树形图重置颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22630693/

相关文章:

javascript - Google 电子表格脚本中的用户输入

javascript - 如何使用 javascript 对从文档库中获取的列表项进行排序?

javascript - 绕其中心 d3 旋转 svg 路径

javascript - 了解 nvd3 x 轴日期格式

javascript - 如何使用 Python/Flask/Jinja 将外部(跨域)JSON 加载到 D3.js 中?

javascript - 过滤器的 jQuery 自定义代码,仅使用 Closest() 函数使用相同的字符串

javascript - Angularjs 指令和现在 onclick 很慢

javascript - 在 DOM 中加粗文本节点

javascript - 使用 D3.js 和标准化数据绘制迷你图

javascript - D3 - 路径输出 0px x 0px - map 不会显示 - 不知道如何使用投影