2016-06-20 55 views
1

我正在嘗試將Sankey圖上最右側節點的標籤移動到節點之後,而不是節點前面。我正在使用顯示here的代碼。在D3 Sankey圖中的最後一個節點後添加文本

我能得到的文本遵循鍵出過濾功能線的節點如下圖所示

// add in the title for the nodes 
    node.append("text") 
     .attr("x", -6) 
     .attr("y", function(d) { return d.dy/2; }) 
     .attr("dy", ".35em") 
     .attr("text-anchor", "end") 
     .attr("transform", null) 
     .text(function(d) { return d.name + " ("+Math.round(d.value).toLocaleString('en') + ")"; }) 
    //.filter(function(d) { return d.x < width/2; }) 
     .attr("x", 6 + sankey.nodeWidth()) 
     .attr("text-anchor", "start"); 

不過,現在這種文字是由右邊緣切斷。即使在調整屏幕寬度時,它仍然會被切斷。我懷疑在代碼中有一行中最右邊的節點位於右邊。我是1)試圖找到這條線和2)試圖使這適用於文本而不是節點。

+0

是否改變'變種餘量= {頂部:10,右:10,下:10 ,left:10}''var'margin = {top:10,right:10,bottom:10,left:30}'解決你的問題? –

回答

1

變化從

var margin = {top: 10, right: 10, bottom: 10, left: 10}, 

右邊距爲這樣:

var margin = {top: 10, right: 90, bottom: 10, left: 10}, 

工作代碼here

+1

這有效。我最初嘗試修改代碼中的「寬度」,但顯然查看了margin函數。 – Danny

相關問題