javascript - d3.js中这两个代码块有什么区别

标签 javascript svg d3.js

我原以为 d3.js append 函数会返回附加到选择的对象,但我发现以下两个代码块给出了不同的结果:

var svg = d3.select("body")
    .append("svg")
        .attr("width", fig_width)
        .attr("height", fig_height);

    svg.append("g")
        .attr("class", "graph")
        .attr("transform", 
              "translate(" + graph_margin.left + "," + graph_margin.top + ")");

这似乎没有翻译图形组,将其偏移左边距和上边距,并且:

var svg = d3.select("body")
    .append("svg")
        .attr("width", fig_width)
        .attr("height", fig_height)
    .append("g")
        .attr("class", "graph")
        .attr("transform", 
              "translate(" + graph_margin.left + "," + graph_margin.top + ")");

哪个是。

我不了解它在 SVG/d3.js 中的工作方式吗?

最佳答案

两个代码块应该给出完全相同的结果。

我猜您正在使用 svg 来附加其他元素——请记住,在第一种情况下,svg 包含 SVG 元素,并且在第二个翻译后的 g 元素。因此,在第一种情况下,您附加到 svg 的任何内容都不会被翻译(因为新元素不包含在 g 元素中)。

关于javascript - d3.js中这两个代码块有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29685326/

相关文章:

javascript - 如何将数据从 * .ejs 文件传输到 app.js 并处理 app.js 文件上的 HTML 标记上的单击事件

javascript - Vue.js 模板连接 Prop

d3.js - d3 无法创建引导卡

javascript - 连接 : how to handle each subscribe with a specific next function as independent

html - SVG - 剪辑路径仅在相同的 <svg> 标签中定义时才有效

javascript - 将外部 SVG 文件加载到 SVGJS(重复的 SVG 标签)

javascript - d3.js:通过单一颜色在图表中对和弦进行分组

javascript - 在 D3.js 中对大型 CSV 进行排序

javascript - d3.js 序数轴未正确更新

javascript 逗号未编码