日付の問題は、データにタイムスタンプ (つまり秒単位) が含まれていることですが、Javascript はミリ秒を想定しています。これは、値に 1000 を掛けることで簡単に修正できます。
series.values = series.values.map(function (d) {
return {
x: d[0]*1000,
y: d[1]
}
});
ツールチップの問題は、実際には NVD3 のバグです。このように使用することは意図されていません。問題mouseover
は、データの最初の項目が必要なものを表していると想定するハンドラーに要約されます。あなたのケースでは、2 を法とするデータポイント番号でアイテムを選択することでこれを修正できます (バーが 2 つあるため)。
.on('mouseover', function(d,i) {
d3.select(this).classed('hover', true);
dispatch.elementMouseover({
point: d,
series: data[i%2],
pos: [x(getX(d,i)), y(getY(d,i))],
pointIndex: i,
seriesIndex: i%2,
e: d3.event
});
})
ただし、これは正確に 2 つのバー シリーズに対してのみ機能します。ここで変更された NVD3 コードで jsfiddle を更新しました。