在文本标签d3.js中显示实时数据

时间:2013-02-26 15:25:21

标签: d3.js label real-time

我有一个更新的折线图,因为数据是以5秒的间隔从数据库中提取的。

https://gist.github.com/Majella/5fc4cd5f41a6ddf2df23

我想在图表的右上角添加一个标签,该标签将显示日期/时间(存储为变量dateTimeTaken)并在拉入新数据时更新此标签?

我一直在网上搜索,似乎无法在任何地方找到这样的例子 - 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

应该很容易。基于你的要点,如:

d3.json("getdata.php", function(error,data) {
  data.forEach(function(d) {
    d.dateTimeTaken = parseDate(d.dateTimeTaken);
    d.reading = +d.reading;
  });
var maxDate = d3.max( data, function(d) { return d.dateTimeTaken; } 

svg.selectAll( ".timeDisplay" )
  .data( [maxDate] )
  .text( function(d) { return d; } )
  .enter()
  .append("text")
  .attr("class", "timeDisplay" )
  .attr("x", width )
  .attr("y", 0)
  .attr("text-anchor", "end" )
  .text( dateTimeTaken );

将它放在“updateData”函数中。 鉴于您正在接收多个数据项,您可能需要对数据执行“d3.max()”调用以确定要显示的日期。