作成したエリア パスのツールチップをセットアップしようとしています。on mousemove イベント ハンドラーに渡されるすべての引数を確認しましたが、完全なデータ セット 0, 0 を取得しています。私が見る限り、データ内のインデックスを示すものは何もありません。「この」コンテキストも svg パス要素です。まだ何も役に立ちません。d3.select(this) を見ても、どこにもインデックスが見つかりません。マウスがどのデータ ポイント上にあるかを判断する方法はありますか?
周りを見回すと、d3.mouse(this) への参照が見つかりました。これにより x/y 座標が得られますが、それをデータ セット内のデータ ポイントにマップするにはどうすればよいでしょうか?
私の目標は、セット内の特定のデータ ポイントに関連するメタデータを表示するためのツールチップを用意することです。
要求されたコード スニペットを次に示します。
var area=d3.svg.area()
.interpolate("monotone")
.x(function(d){
return(scale.x(d.date));
})
.y0(height-padding.bottom)
.y1(function(d){
return(scale.y(d.count));
});
var path=svg.append('path')
.datum(data)
.attr('d',area)
.attr("clip-path", "url(#clip)")
.attr('fill','url(#gradient)')
// .attr('title','path')
.on('mousemove',function(){
console.log(arguments);
console.log(d3.select(this));
console.log(d3.mouse(this));
});