は私のようなd3.csv()
コールバックマッピングを持つ多くの例を見てきました。その理由は、私は属性d:期待数、 "MaNn"、 "NaNz"というエラーがあることです。私が間違っていない場合、このエラーは、しばしば文字列として解析されるデータに関連付けられます。 JSONは数値/浮動小数点数になりますが、D3がデータを文字列として解析している場合は、数値としてマップしたいので、コンソールログエラーから文字列の犯人として解析することはできません。だから、私が試したことは単項+
を使用して、おおよそ上記のCSVの場合と同じであった。D3/JSマッピングJSONデータコールバック
var json = raw_json.map(function(d) { return
xs: +d.xs,
ys: +d.ys,
id: +d.id
});
この時点で、エラーがまだそこにいました。しかし、JSONデータ.map()
が適切な構文であると完全に確信していないため、文字列解析エラーの帰無仮説を完全に拒否したかどうかはわかりません。私は現時点ではまあまあです。
質問:私の.map()
は完全に間違っていますか?予想される番号のエラーをトラブルシューティングするために何かできることはありますか?
JSONファイルにはさまざまなデータ構造があります。
は私がラインジェネレータのために '' obj'またはraw_json'を使いたいでしょうか?私はあなたの 'const'メソッドを使っていました。' '.'' '' '(' d '、lineGenerator(raw_json) ') –
@ArashHowaidaあなたの質問には直接関係しませんが、ラインジェネレータを求めてから... ['d3.zip()'](https://github.com)で配列を渡すこともできますd3.zip(obj.id、obj.xs、obj.ys) '。これは' [[1、11、21]を生成します。 ]、[2、12、22]、[3、13、23]] 'を使用して、ラインジェネレータに渡すことができ、アクセッサ関数の簡素化に役立ちます。 – altocumulus
@ArashHowaida最後のコメントを拡大すると、 'var data = obj.id.map((id、i)=> [+ id、+ obj.xs [i]、+ obj.ys [i]]);'上記のスニペットと'd3.zip()'はたった1行です。 – altocumulus