1

我正在尝试通过使用 PHP 以 5 秒的间隔从 mySQL 数据库中提取数据来更新 d3 多线图。目前图表正在显示但没有更新 - 我知道我的 updateData 函数有问题,但已经尝试了所有能想到的东西,但似乎没有任何效果。有人可以帮忙吗?

https://gist.github.com/Majella/ab32fe0151fd487da3f6

更新

如您所见,x 轴线只是零星地显示,并且有些线没有与 y 轴对齐。

更新要点:

https://gist.github.com/Majella/ab32fe0151fd487da3f6

在此处输入图像描述 更新 2:由于某些奇怪的原因,线条正在改变颜色 - 或者完全不确定。因此,虽然在图表上方的线条是从顶部开始的 - 蓝色,橙色然后是白色 - 当图表更新时蓝色可能会移动到底部,橙色在顶部,白色在中间等 - 但随机发生?

4

1 回答 1

3

在图表的原始绘图中,您正确使用:

var parameter = svg.selectAll(".parameter")
.data(data, function(d) { return d.key; })
    .enter().append("g")
    .attr("class", "parameter");

它将数据(数据)连接到元素(g.parameter)

在更新功能期间,您将需要再次加入数据以执行更新、删除和添加元素。3 个小圆圈教程是了解更多信息的好地方。

无论如何,在你的更新功能中,你可能想要这样的东西(未经测试):

// re-acquire joined data
var containers = svg.selectAll("g.parameter")
    .data( data );

// update existing elements for this data
containers
    .select( "path.line" ) 
    .attr( "d", function(d) { return line(d.values); })
于 2013-03-01T16:31:11.960 回答