Animation D3过渡到计数

Animation D3过渡到计数,animation,d3.js,data-visualization,Animation,D3.js,Data Visualization,我是新手。我正在建立一个D3条形图,并能够动画的酒吧高度;但是,我在每个显示值的条旁边都有一个文本字段,我无法使文本随着条高的增加而计数 我正在使用.text属性,我认为问题出在: g.selectAll(“.myText”) .transition() .text(函数(d){return(d.m6+“%”)})//从上一个d.m6值开始计数的代码? .attr(“转换”,函数(d){…移动文本位置的代码…) .持续时间(700) .ease(d3.easeLinear);转换纯文本只会导致

我是新手。我正在建立一个D3条形图,并能够动画的酒吧高度;但是,我在每个显示值的条旁边都有一个文本字段,我无法使文本随着条高的增加而计数

我正在使用.text属性,我认为问题出在:

g.selectAll(“.myText”)
.transition()
.text(函数(d){return(d.m6+“%”)})//从上一个d.m6值开始计数的代码?
.attr(“转换”,函数(d){…移动文本位置的代码…)
.持续时间(700)

.ease(d3.easeLinear);
转换纯文本只会导致在转换开始时显示结束值(任何延迟后):

对于每个选定的元素,在转换开始时将文本内容设置为指定的目标值。默认情况下,不会对文本进行插值,因为这通常是不需要的。()

下面是一个例子:

var svg=d3.选择(“主体”)
.append(“svg”);
var text=svg.append(“文本”)
.attr(“x”,50)
.attr(“y”,50)
.案文(1);
text.transition()
.文本(1000)
.持续时间(1000)
.延迟(1000);

转换纯文本只会导致在转换开始时显示结束值(在任何延迟之后):

对于每个选定的元素,在转换开始时将文本内容设置为指定的目标值。默认情况下,不会对文本进行插值,因为这通常是不需要的。()

下面是一个例子:

var svg=d3.选择(“主体”)
.append(“svg”);
var text=svg.append(“文本”)
.attr(“x”,50)
.attr(“y”,50)
.案文(1);
text.transition()
.文本(1000)
.持续时间(1000)
.延迟(1000);

这非常好,谢谢!!转换是d3.selectAll的一部分,.tween已经选择了“text”元素,为什么我们需要d3.select(This.text()?另外,我们不应该简单地返回插值器吗?为什么我们要传递“t”?你不能返回插值器(尽管感觉你应该这样做),我们没有返回值来更新所选字段,我们正在运行一些函数来更新所选元素。这是
.tween
。但是,如果我们使用
.attrTween
,我们可以传递插值器,但文本不是属性。是的,我可以使用
text.text()
-但是如果您选择的文本包含许多元素,这将不起作用(因为
将是一个正在转换的单个元素)。这非常有效,谢谢!!转换是d3.selectAll的一部分,而.tween已经选择了“text”元素,为什么我们需要d3.select(this).text()?还有,我们不应该简单地返回插值器吗?为什么我们要传递“t”?您不能返回插值器(尽管感觉您应该这样做),我们没有返回值来更新所选字段,我们正在运行一些函数来更新所选元素。这是
.tween
。但是,如果我们使用
.attrTween
,我们可以传递插值器,但文本不是属性。是的,我可以使用
text.text()
-但如果您选择的文本包含许多元素,则此操作不起作用(因为
将是一个正在转换的单个元素)。