我試圖創建一個熱平衡圖基於在這裏下車所示的例子:https://bost.ocks.org/mike/sankey/內d3.js熱平衡圖的鏈接添加文本
雖然我能夠重新創建圖表,我希望寫的工具提示文本直接鏈接到鏈接本身(因此可以將它們看作靜態圖像)。我試圖添加一個.append("text")
調用鏈接,就像我看到的節點,但它似乎並沒有工作。以下是我添加到上面示例中的代碼:
link.append("text")
.attr("x", 25)
.attr("y", function(d) { return d.dy/2; })
.attr("dy", ".35em")
.attr("text-anchor", "end")
.attr("transform", null)
.text(function(d) { return d.source.name + " → " + d.target.name + "\n" + format(d.value); });
.attr("text-anchor", "start");
但是,這並不顯示任何圖中的顯示。
UPDATE:我粘貼邁克·博斯托克的代碼放到一個要點,使重建的問題更容易:http://bl.ocks.org/almsuarez/50eab68a645d7fc12183384000ea8c82
可你把它放在小提琴? – echonax
最有可能的罪魁禍首是'link'由'svg.append(「g」).selectAll(「.link」)''創建,然後有'.append(「path」) .attr(「class」 「鏈接」)'。這意味着'link'是'paths'的選擇,並且不能將'text'元素附加到路徑(這是您的代碼所做的)。你需要做的是追加'g',然後將'path'和'text'加入'g'。 – JSBob
我看到你在說什麼,我已經更新了鏈接的要點,試圖將其考慮在內。但是,現在我不知道如何跟蹤鏈接路徑的x和y位置以正確覆蓋文本。 –