3

d3 force レイアウトを介していくつかのデータを視覚化したいと考えています。

ただし、ノードを結ぶリンクは直線です。ただし、データには 2 つのノードを接続する複数のエッジがある場合があります。したがって、強制レイアウトの直線は、それらすべてを正しく表示することはできません。行ではなくリンクにパスを追加しようとしました。しかし、うまくいきませんでした。それが間違った方法で使用していたのか、強制レイアウトがパスをリンクとして受け入れないためなのかはわかりません。

4

1 に答える 1

3

svg を使用: 行の代わりにパス

var viz = d3.select("body")
    .insert("svg:svg", "h2")
    .attr("width", "100%")
    .attr("height", "100%")

. . . . . . . .

    .append("svg:path")
    .attr("d", "M0,-5L10,0L0,5");

var path = svg.selectAll("path").data(force.links()).enter()
                .append("svg:path").attr("source", function(d) {
                    return d.source.id;
                }).attr("target", function(d) {
                    return d.target.id;
                }).attr("class", "link").attr('marker-end', 'url(#head)');

ここで、ソースターゲットノードであり、「 svg:path」の「 d」属性で指定された曲線であり、 marker-end属性は矢頭用です

于 2013-03-11T06:41:42.633 に答える