垂直条在javascript中显示值

时间:2013-07-22 08:38:21

标签: javascript

我有一个问题,我真的需要你的帮助。 我有一个带有垂直条的实时图形,它随光标一起移动,我希望它在光标指向时显示图形的值(d.time和d.value)。 http://jsfiddle.net/QBDGB/54/我有两个随机生成的数据系列(data1s和data2s),我把生成数据的时间放在“time”变量中,如你所见:

now = new Date(Date.now() - duration);

var data1 = initialise();
var data2 = initialise();


 //Make stacked data

var data1s = data1;
var data2s = [];
for(var i = 0; i < data1s.length; i++){
data2s.push({
value:  data1s[i].value + data2[i].value,
time: data2[i].time
}  
 )};

 function initialise() {

 var arr = [];
 for (var i = 0; i < n; i++) {
     var obj = {
 time: Date.now(),
 value: Math.floor(Math.random() * 100)
};
     arr.push(obj);
 }

 return arr;

}

当我在图表上方盘旋时,我希望工具提示显示时间和值,但它无法识别它并显示“未定义”,因为我不知道如何传递我的数据集(data1s和data2s)所以“鼠标悬停功能可以识别要显示哪些数据!这是工具提示功能的制作方式,并从“path1”和“path2”调用。

function mouseover() {
     div.transition()
    .duration(500)
    .style("opacity", 1);
}

function mousemove(d) {



 div
  .text( d.time+ ", " + d.value)
  .style("left", (d3.event.pageX ) + "px")
  .style("top", (d3.event.pageY ) + "px");
 }

  function mouseout() {
   div.transition()
  .duration(500)
  .style("opacity", 1e-6);
 }

var path1 = svg.append("g")
    .attr("clip-path", "url(#clip)")
    .append("path")
    .data([data1s])
    .attr("class", "line1")
    .on("mouseover", mouseover)
    .on("mousemove", mousemove)
    .on("mouseout", mouseout);


  var path2 =svg.append("g")
    .attr("clip-path", "url(#clip)")
    .append("path")
    .data([data2s])
    .attr("class", "line2")
    .on("mouseover", mouseover)
    .on("mousemove", mousemove)
    .on("mouseout", mouseout);

你知道该怎么办吗?我想我需要添加

svg.selectAll("path1")
.attr("opacity", 1)

 or svg.selectAll("datas1")
.attr("opacity", 1)

某处!但我不知道怎么做..

谢谢,

1 个答案:

答案 0 :(得分:1)

将鼠标悬停功能更新为:

function mousemove(d) {

 div
 .text( d[0].time+ ", " + d[0].value)
 .style("left", (d3.event.pageX ) + "px")
 .style("top", (d3.event.pageY ) + "px");
}

将索引包含在对象'd'中。

希望有所帮助。