本文介绍了在d3中应用转换时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在d3中设计的条形图上应用一些过渡效果。这是我的代码 -

I am trying to apply some transition effect on bar graph i designed in d3. Here is my code-

svg.selectAll(".bar")
            .data(data)
            .enter().append("g")
            .attr("class", "bar")
            .append("rect")
            .attr("rx", barRadius)
            .attr("fill","333" )
            // .attr("color_value", "steelblue")
            .attr("index_value", function(d, i) {
                return "index-" + d[columns[0]].replace(/[^a-zA-Z0-9]/g, '', 'gi');
            })
            .attr("class", function(d, i) {
                return "bars-Bubble-index-" + d[columns[0]].replace(/[^a-zA-Z0-9]/g, '', 'gi')+div;
            })
            .attr("id", function(d) {
                return d[columns[0]] + ":" + d[measure1];
            })
            .attr("onclick", fun)
            .attr("x", function(d) {
                return x(d[columns[0]]);
            })
            .attr("width",0)
            .transition()
            .duration(2000)//1 second
            .attr("width", x.rangeBand())
            .attr("y", function(d) {
                return y(d[measure1]);
            })
            .attr("height", function(d) {
                return height - y(d[measure1]);
            })

转换似乎工作正常,除了我在浏览器控制台上收到以下错误
TypeError:svg.selectAll (......)。数据(......)。输入(...)。追加(...)。ATTR(...)。追加(...)。ATTR(...)。ATTR( ...)。ATTR(...)。ATTR(...)。ATTR(...)。ATTR(...)。ATTR(...)。ATTR(...)过渡(。 ..)。duration(...)。attr(...)。attr(...)。attr(...)。on不是函数
TypeError:bars.append(... ).attr(...)。ATTR(...)过渡(...)持续时间(......)。ATTR(...)。ATTR(...)过渡(...) .duration(...)。ATTR(...)。ATTR(...)。ATTR(...)。ATTR(...)。ATTR(...)。ATTR(...)。 attr(...)。attr(...)。on不是函数

Transition seem to be working fine except for the fact that I am receiving following errors on browser consoleTypeError: svg.selectAll(...).data(...).enter(...).append(...).attr(...).append(...).attr(...).attr(...).attr(...).attr(...).attr(...).attr(...).attr(...).attr(...).transition(...).duration(...).attr(...).attr(...).attr(...).on is not a function TypeError: bars.append(...).attr(...).attr(...).transition(...).duration(...).attr(...).attr(...).transition(...).duration(...).attr(...).attr(...).attr(...).attr(...).attr(...).attr(...).attr(...).attr(...).on is not a function

由于这些错误,脚本的其余部分工作不正常并且图表是显示得当。
任何帮助将不胜感激。

And because of these error rest of the script is not working properly and graphs are displayed properly.Any help will be appreciated.

推荐答案

添加 .on(...) .transition()之前调用,那么它应该没问题。

Add the .on(...) call before the .transition(), then it should be fine.

这篇关于在d3中应用转换时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-26 16:15