【发布时间】:2015-11-20 04:32:36
【问题描述】:
我希望创建一个交互式图例。我正在研究从 .csv 文件填充的力导向图。我希望当鼠标悬停在图例上时突出显示节点。我正在使用 Susie Lu 为我的传奇创建的 d3.legend 库。
我还在测试,每当我将鼠标悬停在一个节点上时,其他具有相同大小的节点都会被突出显示。但是,它不起作用。我注意到 Mike Bostock 之前给出的示例,例如 //bl.ocks.org/mbostock/3087986。我还提到了 Mike Bostok 对类似问题 stackoverflow.com/questions/11206015/clicking-a-node- 的回答in-d3-from-a-button-outside-the-svg/11211391#11211391 但没有成功。 Ulitmately 我希望我的 Force Layout 看起来像这样 bl.ocks.org/Guerino1/raw/2879486/ 谁能指出我的菜鸟错误?
var node = svg.selectAll(".node")
.data(graph.nodes)
.enter().append("g")
.attr("r", function(d) { return d.size; })
.attr("class", function(d) { return "node " + d.size; })
.style("fill", function (d) { return color(d.group); })
.on("mouseover", function(d) { highlight(d.size); });
node.append("circle")
.style("fill", function(d) { return color(d.group); })
.attr("r",function(d) { return d.size; });
function highlight(type) {
if (type == null) d3.selectAll(".node").classed("active", false);
else d3.selectAll(".node." + type).classed("active", true);
}
完整编码请参考http://jsfiddle.net/rajaiskandar/os8622yb/。有什么方法可以将我的 .csv 文件上传到 jsfiddle?我已经自定义了 les_mis.csv 。
这是现在的样子
提前谢谢你
【问题讨论】:
-
小提琴不起作用。没有办法添加 csv。您可以添加代表真实数据的虚拟数据。
-
抱歉回复晚了。我现在使用 plnkr 获取完整代码。请参考链接plnkr.co/edit/JGYS5grLzqrfn5GFj87q?p=preview。谢谢
标签: javascript csv d3.js legend