0

d3js マルチチャート オブジェクトを描画するこのコードがあります。値 time:Years の値は、この形式 Year=2011 で指定されます... この時間形式では、コードは正常に動作しますが、データ時間をこの形式 Year= で変更したいと考えていました。 (YMD H:M:S)

var data = [{"Year":"2011-10-01 20:46:04","Happy":"63.4","Sad":"42.7","Angry":"12.2","Surprised":"44.2"},
{"Year":"2012-10-01 17:02:04","Happy":"75.4","Sad":"32.7","Angry":"78.2","Surprised":"82.2"},
{"Year":"2013-10-01 19:55:44","Happy":"73.4","Sad":"20.7","Angry":"92.2","Surprised":"75.4"}];

私はデータ年を解析しました:

 var parseDate=d3.time.format("%Y-%m-%d %H:%M:%S").parse; //line 13
 d.Year=parseDate(d.Year);  //and then line 53

しかし、それは機能していません。どのようにデータ年をこの形式で読み取ることができますか:(YMD H:M:S)

4

1 に答える 1

0

あなたの例の問題は、オブジェクトのすべてのプロパティを数値に変換していることです。これは、日付が年だけの場合は機能しますが、解析する必要がある文字列の場合は機能しません。あなたの場合、数字を直接文字列ではなく数字として与えることができるので、とにかくこの変換を行う必要はありません。つまり、あなたは必要ありません

for(var prop in d) {
    if(d.hasOwnProperty(prop)) {
        d[prop] = parseFloat(d[prop]);
    }
}

hereを削除した変換コードを使用して jsfiddle を実行します。

于 2013-10-16T10:11:37.940 に答える