2016-06-20 3 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} 'by' 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

Это работает. Сначала я попытался изменить «ширину» в коде, но, видимо, просмотрел функцию поля. – Danny