【问题标题】:d3.js Indented tree with straight linksd3.js 带有直接链接的缩进树
【发布时间】:2013-07-21 04:06:12
【问题描述】:

我的代码基于D3.js Indented tree example

我想要直接链接而不是父/子对象之间的弯曲链接。

我知道这与以下代码有关,但是我找不到解决方案。我希望链接是直的,90 度转弯。

var diagonal = d3.svg.diagonal()
    .projection(function(d) { return [d.y, d.x]; });

【问题讨论】:

  • 这些类型的链接被认为是“正交的”

标签: d3.js hierarchy


【解决方案1】:

问题是从链接中提取 x 和 y 点。一种方法是:

链接生成器:

self.diagonal = d3.svg.line().interpolate('step')
        .x(function (d) { return d.x; })
        .y(function (d) { return d.y; });

然后像这样使用生成器:

link.enter().append('svg:path', 'g')
        .duration(self.duration)
        .attr('d', function (d) {
            return self.diagonal([{
                y: d.source.x,
                x: d.source.y
            }, {
                y: d.target.x,
                x: d.target.y
            }]);
        });

【讨论】:

    【解决方案2】:

    你快到了。您需要使用具有合适插值的法线,例如

    var line = d3.svg.line().interpolation("step")
                     .x(function(d) { return d.y; })
                     .y(function(d) { return d.x; });
    

    您可能需要调整确切的插值模式。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多