gpt4 book ai didi

javascript - D3.js 转换多行 - 数据不更新

转载 作者:行者123 更新时间:2023-12-03 08:30:14 26 4
gpt4 key购买 nike

我试图在过滤数据时更新多线图。但是,当轴按其应有的方式转换时,我的线条会使用旧的未经过滤的数据进行更新;导致其超出图表区域。我的问题似乎是过渡部分,但我似乎无法弄清楚。

我有 y 轴保持不变的工作示例,但没有这种类型的变化数据。我认为,我可以删除所有旧路径,但据我所知,只要我们不需要添加更多行,我就应该能够更新?

这是一个有效的 jsFiddle,而不是旧的代码墙。这是一个比我之前发布的代码更简单的图表,但基本问题是相同的。该行不会更新。

测试代码:

$('input[type=button]').click( function() {

Arr1 = [{Antal:3000,Datum:parseDate("2008-03-30")},{Antal:2000,Datum:parseDate("2008-06-30")}];
Arr2 = [{Antal:5000,Datum:parseDate("2008-03-30")},{Antal:8300,Datum:parseDate("2008-06-30")}];

data = Arr1.concat(Arr2)
dsMainArr = [{name: "primary",values:Arr1},{name: "specialist",values:Arr2}];


// redraw the line
city
.attr("d", line)
.attr("transform", null);

//update x domain for axis labels
y.domain([
d3.min(dsMainArr, function(c) { return d3.min(c.values, function(v) { return v.Antal; }); }),
d3.max(dsMainArr, function(c) { return d3.max(c.values, function(v) { return v.Antal; }); })
]);


//slide xAxis
svg.select(".y.axis")
.transition()
.duration(300)
.ease("linear")
.call(yAxis);

//slide the line to the left
city.transition()
.duration(500)
.ease("linear")
.attr("d", function(d) { return line(d.values); })
.style("stroke", function(d) { return color(d.name); });

});

http://jsfiddle.net/1x0k3Lzd/34/

知道出了什么问题吗?

最佳答案

而不是

city
.attr("d", line)
.attr("transform", null);

 city.transition()
.duration(500)
.ease("linear")
.attr("d", function(d) { return line(d.values); })
.style("stroke", function(d) { return color(d.name); });

你需要类似的东西

city
.data(dsMainArr)
.select('.line')
.transition()
.duration(500)
.attr("d", function(d) { return line(d.values); })
.style("stroke", function(d) { return color(d.name); });

您需要再次包含 data(dsMainArr),因为您已在本地重新定义了 dsMainArr

顺便说一句,请注意

d3.select('input[type=button]').on("click", function(){})

功能为

$('input[type=button]').click(function(){})

这里是更新后的 jsfiddle 的链接:http://jsfiddle.net/47xnn07h/2/

关于javascript - D3.js 转换多行 - 数据不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33367865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com