Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改D3链接的外观_Javascript_Tree_Data Visualization_D3.js - Fatal编程技术网

Javascript 更改D3链接的外观

Javascript 更改D3链接的外观,javascript,tree,data-visualization,d3.js,Javascript,Tree,Data Visualization,D3.js,我希望将数据可视化为一棵树,但我也希望自定义默认链接外观。显示了默认外观,但我想创建看起来像链接的链接。可能吗?链接是SVG路径元素。您可以使用设置样式来更改箭头的颜色、宽度等。对于箭头,您可以使用。要添加标签,需要添加额外的SVG文本元素。例如,您可以添加一个新的select,该树作为数据,为UML基数创建SVG文本元素。链接是SVG路径元素。您可以使用设置样式来更改箭头的颜色、宽度等。对于箭头,您可以使用。要添加标签,需要添加额外的SVG文本元素。例如,您可以添加一个新的select,将树作

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

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

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

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

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);
        }
    }

Function Math.sign是我自己的实现

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

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是我自己的实现