当前位置: 首页 > 知识库问答 >
问题:

无法创建SVG组

云英才
2023-03-14

使用D3.js,我试图创建一系列SVG组(即 元素),数据数组中的每个数字都有一个 元素。每个 元素本身应该包含一个 和一个 。在我看来,下面的代码应该做到这一点,但当我检查 元素(在Chrome和Firefox中都是如此)时,它直接在 元素中包含 元素和 元素,而看不到 元素。

HTML页面最初只包含一个空的 元素。数据集只是一个简单的数字数组。

var svg = d3.select("svg");

svg.selectAll("g")
    .data(dataset)
    .enter()
    .call( function(g) {
        g.append("rect")
            .attr("x", (d, i) => xScale(i))
            .attr("y", d => h - yScale(d))
            .attr("width", xScale.rangeBand())
            .attr("height", d => yScale(d))
            .attr("fill", d => "rgb(0,0," + (d*10) + ")")
            .on('click', d => console.log(d))
            .on('mouseover', function() {
                d3.select(this)
                    .attr('fill', 'orange');
                })
            .on('mouseout', function(d) {
                d3.select(this)
                    .transition()
                    .duration(250)
                    .attr("fill", d => "rgb(0,0," + (d*10) + ")")
                });
        })
    .call( function(g) {
        g.append('text')
            .text(d => d)
            .attr('class','label')
            .attr("x", (d, i) => xScale(i) + xScale.rangeBand() / 2)
            .attr("y", d =>  h - yScale(d) + 14);
        });

共有1个答案

年高洁
2023-03-14

我发现了我的问题。我认为selectall('g').data(dataset).enter()会导致 元素与为我创建的dataset中的数据不匹配。但它们不是,而且有必要在调用.Enter()之后添加.append('g')来实际创建缺少的 元素。之后,将向.call(...)调用的函数传递新的 元素。

 类似资料:
  • 我的代码更长,但我没有复制所有的代码,我看到程序停在这里 对不起我的英语。

  • 下面是SVG的html,请帮助我为SVG创建XPATH

  • 问题内容: 我正在使用node.js,并将音频流式传输到我的node.js服务器。现在,我在构建音频Blob的过程中注意到: 我在新的Blob处收到ReferenceError。似乎不支持Blob。如何创建要使用node.js fs模块保存的Blob。 谢谢你们! 问题答案: 解决此问题的方法是创建一个可以在数组缓冲区和节点缓冲区之间转换的函数。 将二进制NodeJS缓冲区转换为JavaScrip

  • 我正在尝试基于此示例编写自己的代码。 我使用的是Spring Boot,所有依赖项都来自https://start.spring.io/ 这是我的知识库: 我的控制器的一部分: 我的Spring Boot: 我收到此错误: 我做错了什么?如果有必要,我可以发布更多类似实体的代码 我正在使用IntelliJ IDEA。

  • 我想在Eclipse中用for创建10个txt文件,但是为什么我这么做的时候会出错?

  • 我尝试用nginx创建docker容器容器。(Windows 10 64 bit) 并得到错误: 怎么解决这个? 更新。 尝试conf 但如何使用工匠? artisan:生成:上下文:。dockerfile:php.dockerfile容器\u名称:artisan卷:-./src:/var/www/html/public依赖于:-mysql工作目录:/var/www/html/public入口点: