次のようなデータセットがあります。
data_set=[{date: '2012,09,04,10,54,53'},
{date: '2012,09,05,10,58,57'},
{date: '2012,09,11,10,44,05'},
{date: '2012,09,04,11,25,30'},
{date: '2012,09,04,10,28,55'},
{date: '2012,09,04,12,30,17'},
{date: '2012,09,04,11,14,23'},
{date: '2012,09,04,12,16,10'},
{date: '2012,09,04,11,57,46'},
{date: '2012,09,04,11,15,53'},
{date: '2012,09,04,11,25,43'},];
x 軸が完全な日付ではなく時刻である散布図を作成しようとしています。x 軸に 24 期間のみを表示するにはどうすればよいですか? また、日付ポイントを x 軸に沿って適切にプロットするにはどうすればよいですか? サウンド d3.time.scale() を使用しようとしていますか、単に d3.linear.scale() を使用してフォーマットの問題を回避する必要がありますか? 私がやりたいのは、曜日ごとにy軸に沿った異なる点にすることです。プロットの例はこちらです。この例では、10=Monday、20=Tuesday などです。異なる記号は、特定の曜日の月の異なる日を表します。
そこで、文字列から日付、特に時間と分を取り出す次の関数を作成しました。
var date_format = d3.time.format("%Y,%m,%d,%H,%M,%S");
var time_format = d3.time.format("%X");
これらの関数を使用して、次のステートメントを作成しました。
dd = date_format.parse('2012,01,02,12,39,45')
Mon Jan 02 2012 12:39:45 GMT-0800 (PST)
time_format(dd)
"12:39:45"
コンソールでは、文字列を取得して日付に変換し、その日付を使用して時刻を生成したことがわかります。d3.time.scale() は、ドメインを設定しようとしたときに渡す時間を受け入れないようです。
http://i.imgur.com/DRtSW.png「完成したプロット」