D3:无法将简单路径追加到svg容器

Hybesis

我没有在简单的svg容器上附加路径。它将我的“路径”元素视为文本。

这是我的代码:

// Create the SVG
var tracer = {};
tracer.$container = document.getElementById('container');

tracer.$svg = $('<svg class="svg-d3-table" style="width:100%; height:100%">');
tracer.$container.append(tracer.$svg);

// Specify the path points
var pathInfo = [{x:0, y:60},
                {x:50, y:110},
                {x:90, y:70},
                {x:140, y:100}];

// Specify the function for generating path data             
var pathLine = d3.line()
                 .x(function(d){return d.x;})
                 .y(function(d){return d.y;})
                 .curve(d3.curveBasis); 

// Append path
tracer.$svg.append("path")
           .attr("d", pathLine(pathInfo))
           .attr("stroke", "white")
           .attr("stroke-width", 8)
           .attr("fill", "none");

而不是使用新的path元素

<path d="M314,352L314,352C314,352,314,352,..."></path>

它带有以下内容:

<svg class="svg-d3-table" style="..." d="M0,60L8.3,68.3.7,...">path</svg>

我想念什么?

PS:抱歉,我来自c ++,在使用一些非常基本的js操作时可能会遇到困难。

非常感谢你。亲切的问候。

标记

正如其他人在评论中指出的那样,请避免将jquery混合使用d3

问题的根源是您tracer.$svg是一个jquery选择器,但您将其视为d3选择器虽然它们都有一个append方法,但是它们是两个完全不同的野兽(正如@altocumulus所指出的那样,jQuery在操纵SVG方面没有起到很好的作用)。

这是您的代码,就像我用just编写的那样d3

<!DOCTYPE html>
<html>

<head>
  <script data-require="[email protected]" data-semver="4.0.0" src="https://d3js.org/d3.v4.min.js"></script>
</head>

<body>
  <div id="container" style="background-color: steelblue"></div>
  <script>
    // Create the SVG
    var tracer = {};
    tracer.$container = d3.select('#container');

    tracer.$svg = tracer.$container.append("svg")
      .attr("class", "svg-d3-table")
      .style("width", "100%")
      .style("height", "100%");

    // Specify the path points
    var pathInfo = [{
      x: 0,
      y: 60
    }, {
      x: 50,
      y: 110
    }, {
      x: 90,
      y: 70
    }, {
      x: 140,
      y: 100
    }];

    // Specify the function for generating path data             
    var pathLine = d3.line()
      .x(function(d) {
        return d.x;
      })
      .y(function(d) {
        return d.y;
      })
      .curve(d3.curveBasis);

    // Append path
    tracer.$svg.append("path")
      .attr("d", pathLine(pathInfo))
      .attr("stroke", "white") //<-- need a color?
      .attr("stroke-width", 8)
      .attr("fill", "none");
  </script>
</body>

</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将边框添加到SVG路径d3 JavaScript

来自分类常见问题

D3将文本附加到SVG矩形

来自分类Dev

将点添加到d3 SVG贴图

来自分类Dev

增大d3 SVG容器的尺寸

来自分类Dev

D3.js:将路径追加到矩形

来自分类Dev

d3从数组创建SVG路径

来自分类Dev

d3从JSON路径创建svg

来自分类Dev

d3从数组创建SVG路径

来自分类Dev

D3 svg 路径重叠

来自分类Dev

D3无法绘制简单的线条

来自分类Dev

将多条路径合并到一个D3(SVG)中

来自分类Dev

将标签添加到D3路径

来自分类Dev

D3仅将笔划添加到路径的一侧

来自分类Dev

在D3中将阴影添加到svg图像

来自分类Dev

如何将SVG / d3映射添加到React Native?

来自分类Dev

当存在多个json文件时,将d3图表的svg附加到单独的div

来自分类Dev

d3:将元素附加到现有svg时的关键功能选择

来自分类Dev

如果我将 svg 附加到 div,d3 鼠标悬停事件不会触发

来自分类Dev

如何将文本添加到 d3 中的 svg 圆圈

来自分类Dev

无法将<animateTransform>元素附加到SVG路径

来自分类Dev

如何获得SVG路径形状以缩放D3?

来自分类Dev

d3可拖动svg路径线段

来自分类Dev

在d3中访问SVG路径长度

来自分类Dev

更新 svg 和 d3 中的路径样式

来自分类Dev

如何在D3中将文本追加到div

来自分类Dev

尝试将标签添加到d3,无法弄清楚文本标签

来自分类Dev

无法将文本添加到d3水平条

来自分类Dev

将元素克隆追加到d3js中的svg组

来自分类Dev

如何将CSV文件中的链接添加到D3生成的SVG元素?