改变D3链接的外观

时间:2012-07-02 05:22:53

标签: javascript tree data-visualization d3.js

我想将数据可视化为树,但我也希望自定义默认链接外观。 There显示默认外观,但我想创建看起来像Rational Software Architect链接的链接。有可能吗?

2 个答案:

答案 0 :(得分:1)

链接是SVG路径元素。您可以使用CSS设置样式以更改颜色,宽度等。对于箭头,您可以使用SVG Markers。要添加标签,您需要添加其他SVG文本元素。例如,您可以使用树links添加一个新选择作为为UML基数创建SVG文本元素的数据。

答案 1 :(得分:0)

我已经完成了编写自己的路径处理程序。以下是示例代码:

function elbow(d) {
        var radius = 10;

        var xOffsetSign = Math.sign(d.source.x - d.target.x);
        var yOffsetSign = Math.sign(d.source.y - d.target.y);

        if (xOffsetSign != 0) {
            var ellipseXDirection = (xOffsetSign * yOffsetSign) > 0 ? 1 : 0;

            return "M" + d.source.x + "," + d.source.y
                + " H" + (d.target.x + xOffsetSign * radius)
                + " A" + radius + "," + radius + " 0 0," + ellipseXDirection + " " + d.target.x + "," + (d.source.y - yOffsetSign * radius)
                + " V" + d.target.y
                + (d.target.children ? "" : "h" + margin.right);
        } else {
            return "M" + d.source.x + "," + d.source.y
                + " H" + d.target.x + " V" + d.target.y
                + (d.target.children ? "" : "h" + margin.right);
        }
    }

函数Math.sign是我自己的实现