javascript - d3.js 力图

标签 javascript d3.js force-layout

我正在开发 d3.js 力图应用程序。我很想知道如何用图像替换中央蓝色圆圈。有一个图像网址填充圆圈的背景 - 所以有一个圆形图片?

http://jsfiddle.net/LsMZp/1/

所以不用填充 - 是否可以只使用背景 url?

    var circle = svg.append("svg:g").selectAll("circle").data(force.nodes()).enter().append("svg:circle").attr("r", function(d) {
        return getRadius(d);
    }).style("fill", function(d) {
        return color(d.group);
    }).call(force.drag);

最佳答案

如果您不要求将图像剪裁到圆之外(我不确定这是否是您想要的),您可以定义一组新元素:

var image = svg.selectAll(".image");
// Bind to data
image = image.data(force.nodes());
image.enter().append("image")
 .attr("xlink:href", "<url to your image here>")
 .attr("class", "image");

然后在您的tick函数中

function tick() {
    link.attr("x1", function(d) {return d.source.x;})
        .attr("y1", function(d) {return d.source.y;})
        .attr("x2", function(d) {return d.target.x;})
        .attr("y2", function(d) {return d.target.y;});
    node.attr("cx", function(d) {return d.x})
        .attr("cy", function(d) {return d.y});
    image.attr("transform", function(d) {
        return "translate(" + d.x + "," + d.y + ")";
    });
}

关于javascript - d3.js 力图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21708456/

相关文章:

javascript - 如何在可缩放的旭日形中隐藏外圈

javascript - 在 D3.js 中预先计算和设置节点的初始位置

javascript - 添加文本标签以强制 d3.js 中的定向图链接

javascript - D3 可折叠力布局混淆了 child 和 parent

javascript - 如何在 intern js 中从 createpage 打印 HTML 源代码

javascript - 在 React 中创建一个类并使用高阶组件导出

javascript - 使用 d3.js 计算平均 json

d3.js - 给定 geoJSON 对象,在 d3 中将 map 居中

javascript - 将二维数组中的列添加到另一个二维数组

javascript - 从 ngCordova 切换到 Ionic-Native 后 AngularJS 应用程序中的导航问题